Skip to main content

FastAPI-Scheduler is a simple scheduled task management FastAPI extension based on APScheduler.

Project description

FastAPI-Scheduler

Package version Downloads Chat on Gitter 229036692

## Project Introduction

FastAPI-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:

SchedulerAdmin

Dependent projects

agreement

The project follows the Apache2.0 license agreement.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastapi_scheduler-0.0.15.tar.gz (8.4 kB view details)

Uploaded Source

Built Distribution

fastapi_scheduler-0.0.15-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

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

Hashes for fastapi_scheduler-0.0.15.tar.gz
Algorithm Hash digest
SHA256 48dc1201ee13f0cff5c19c45f6180043205d9a48cb0a5940256d8fc299d74d23
MD5 64bfc0b49149ef7bc576e066fcda0330
BLAKE2b-256 de01d32b190ad2901663a59cf4b0d9dbc567616cf1412bdac787e496775cf275

See more details on using hashes here.

File details

Details for the file fastapi_scheduler-0.0.15-py3-none-any.whl.

File metadata

File hashes

Hashes for fastapi_scheduler-0.0.15-py3-none-any.whl
Algorithm Hash digest
SHA256 704793fda16f948c18dca32ba77aefee7bb762dac55beaf5e7a4224e12bb3a4b
MD5 29b2371f39144424e79d81faa2fc20a3
BLAKE2b-256 987fa32cb7d2cb3e8ac20591509f1a442cae5a67bc3074c63ec186162e175c89

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page