FastAPI-Scheduler is a simple scheduled task management FastAPI extension based on APScheduler.
Project description
FastAPI-Scheduler
## Project IntroductionFastAPI-Scheduler
is a simple scheduled task management FastAPI
extension library based on APScheduler
.
Install
pip install fastapi-scheduler
Simple example
main.py:
from fastapi import FastAPI
from fastapi_amis_admin.admin.settings import Settings
from fastapi_amis_admin.admin.site import AdminSite
from datetime import date
from fastapi_scheduler import SchedulerAdmin
# Create `FastAPI` application
app = FastAPI()
# Create `AdminSite` instance
site = AdminSite(settings=Settings(database_url_async='sqlite+aiosqlite:///amisadmin.db'))
# # Custom timed task scheduler
# from apscheduler.schedulers.asyncio import AsyncIOScheduler
# from apscheduler.jobstores.redis import RedisJobStore
# # Use `RedisJobStore` to create a job store
# scheduler = AsyncIOScheduler(jobstores={'default':RedisJobStore(db=2,host="127.0.0.1",port=6379,password="test")})
# scheduler = SchedulerAdmin.bind(site,scheduler=scheduler)
# Create an instance of the scheduled task scheduler `SchedulerAdmin`
scheduler = SchedulerAdmin.bind(site)
# Add scheduled tasks, refer to the official documentation: https://apscheduler.readthedocs.io/en/master/
# use when you want to run the job at fixed intervals of time
@scheduler.scheduled_job('interval', seconds=60)
def interval_task_test():
print('interval task is run...')
# use when you want to run the job periodically at certain time(s) of day
@scheduler.scheduled_job('cron', hour=3, minute=30)
def cron_task_test():
print('cron task is run...')
# use when you want to run the job just once at a certain point of time
@scheduler.scheduled_job('date', run_date=date(2022, 11, 11))
def date_task_test():
print('date task is run...')
@app.on_event("startup")
async def startup():
# Mount the background management system
site.mount_app(app)
# Start the scheduled task scheduler
scheduler.start()
if __name__ == '__main__':
import uvicorn
uvicorn.run(app, debug=True)
Interface/UI preview
- Open
http://127.0.0.1:8000/admin/
in your browser:
Dependent projects
agreement
The project follows the Apache2.0 license agreement.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file fastapi_scheduler-0.0.15.tar.gz
.
File metadata
- Download URL: fastapi_scheduler-0.0.15.tar.gz
- Upload date:
- Size: 8.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.10.1 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 48dc1201ee13f0cff5c19c45f6180043205d9a48cb0a5940256d8fc299d74d23 |
|
MD5 | 64bfc0b49149ef7bc576e066fcda0330 |
|
BLAKE2b-256 | de01d32b190ad2901663a59cf4b0d9dbc567616cf1412bdac787e496775cf275 |
File details
Details for the file fastapi_scheduler-0.0.15-py3-none-any.whl
.
File metadata
- Download URL: fastapi_scheduler-0.0.15-py3-none-any.whl
- Upload date:
- Size: 9.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.10.1 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 704793fda16f948c18dca32ba77aefee7bb762dac55beaf5e7a4224e12bb3a4b |
|
MD5 | 29b2371f39144424e79d81faa2fc20a3 |
|
BLAKE2b-256 | 987fa32cb7d2cb3e8ac20591509f1a442cae5a67bc3074c63ec186162e175c89 |