添加定时任务配置

This commit is contained in:
2026-01-15 11:10:19 +08:00
parent a3107403d8
commit 1e8ae960cd
6 changed files with 43 additions and 2 deletions

1
.gitignore vendored
View File

@@ -15,3 +15,4 @@ wheels/
.sqlite
fallback.log
database.db
fastscheduler_state.json

View File

@@ -10,6 +10,12 @@ def init_database():
create_db_and_tables()
logger.info("[数据库] 数据库初始化完成 ✅")
def init_scheduler(app : FastAPI):
from scheduler import init_scheduler_router
logger.info("[定时任务] 初始化定时任务 📦")
init_scheduler_router(app)
logger.info("[定时任务] 定时任务初始化完成 ✅")
def active_config():
logger.info(f"[激活配置] 加载配置 ⚙️")
@@ -31,5 +37,6 @@ async def lifespan(app: FastAPI):
active_config()
init_database()
import_router(app)
init_scheduler(app)
yield
logger.info(f"[生命周期] 应用关闭 🔧✅")

View File

@@ -21,6 +21,7 @@ dependencies = [
"wecom-sdk>=1.0.0",
"xmltodict>=1.0.2",
"psycopg2-binary>=2.9.11",
"fastscheduler[fastapi]>=0.1.2",
]
[dependency-groups]

7
scheduler/__init__.py Normal file
View File

@@ -0,0 +1,7 @@
from fastapi import FastAPI
from fastscheduler.fastapi_integration import create_scheduler_routes
from scheduler.scheduler import scheduler
def init_scheduler_router(app : FastAPI):
app.include_router(create_scheduler_routes(scheduler))
scheduler.start()

View File

@@ -0,0 +1,9 @@
from fastscheduler import FastScheduler
scheduler = FastScheduler(quiet=True)
@scheduler.every(10).seconds
def background_task():
print("Background work")

18
uv.lock generated
View File

@@ -305,6 +305,20 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/43/8b/cef8cfed7ed77d52fc772b1c7b966ba019a3f50b65a2b3625a0f3b7f6f53/fastapi_utils-0.8.0-py3-none-any.whl", hash = "sha256:6c4d507a76bab9a016cee0c4fa3a4638c636b2b2689e39c62254b1b2e4e81825", size = 18495, upload-time = "2024-11-11T08:30:01.914Z" },
]
[[package]]
name = "fastscheduler"
version = "0.1.2"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/41/d0/1d4be557b3b47b74cd9eddf5b6bdf28c91a201c2872b6bce74040b8047f4/fastscheduler-0.1.2.tar.gz", hash = "sha256:90488a3177513dbd7f881d29ce1846ea3fb15a654f449ec90bd01d03711e4bc3", size = 25554, upload-time = "2026-01-10T06:46:14.686Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/56/45/908b0514cb1c31ac04769a61fe868c6031e1bb86697b1ec9eb6d590936e1/fastscheduler-0.1.2-py3-none-any.whl", hash = "sha256:3c79dcde3c39bc7f32696fb7f667f5d6cc602c4102471014220cff3a32e6d77d", size = 26826, upload-time = "2026-01-10T06:46:15.604Z" },
]
[package.optional-dependencies]
fastapi = [
{ name = "fastapi", extra = ["standard"] },
]
[[package]]
name = "greenlet"
version = "3.2.4"
@@ -1304,7 +1318,7 @@ wheels = [
]
[[package]]
name = "wxcom-wnzs-adapter"
name = "wecom-wnzs-adapter"
version = "0.1.0"
source = { virtual = "." }
dependencies = [
@@ -1312,6 +1326,7 @@ dependencies = [
{ name = "casbin" },
{ name = "fastapi", extra = ["standard"] },
{ name = "fastapi-utils" },
{ name = "fastscheduler", extra = ["fastapi"] },
{ name = "motor" },
{ name = "pickledb" },
{ name = "psycopg2-binary" },
@@ -1332,6 +1347,7 @@ requires-dist = [
{ name = "casbin", specifier = ">=1.43.0" },
{ name = "fastapi", extras = ["standard"], specifier = ">=0.116.1" },
{ name = "fastapi-utils", specifier = ">=0.8.0" },
{ name = "fastscheduler", extras = ["fastapi"], specifier = ">=0.1.2" },
{ name = "motor", specifier = ">=3.7.1" },
{ name = "pickledb", specifier = ">=1.3.2" },
{ name = "psycopg2-binary", specifier = ">=2.9.11" },