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
Close
Hashes for fastapi_scheduler-0.0.14a1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f9f6f6ab0304db0850b653013a8223443838e7cd30857eb96cc50b301718cc2 |
|
MD5 | 7ed05b445724a6a6399798779d114531 |
|
BLAKE2b-256 | b102a3eb653fae3075ddae14ababed709188374137430ba646ca995f46f15fe3 |
Close
Hashes for fastapi_scheduler-0.0.14a1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e04dd2ded8d77bc46b0e51ab006e46b74843ccf41c10cac75b950f6141bb3a58 |
|
MD5 | 9afa5ed244de25cc58c6306d7018a789 |
|
BLAKE2b-256 | 39787e8970da7f90a6ba557547c0761a0a8af0a141f75fee939ef0bdead47118 |