添加定时任务配置
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -14,4 +14,5 @@ wheels/
|
|||||||
# prod file
|
# prod file
|
||||||
.sqlite
|
.sqlite
|
||||||
fallback.log
|
fallback.log
|
||||||
database.db
|
database.db
|
||||||
|
fastscheduler_state.json
|
||||||
|
|||||||
@@ -10,6 +10,12 @@ def init_database():
|
|||||||
create_db_and_tables()
|
create_db_and_tables()
|
||||||
logger.info("[数据库] 数据库初始化完成 ✅")
|
logger.info("[数据库] 数据库初始化完成 ✅")
|
||||||
|
|
||||||
|
def init_scheduler(app : FastAPI):
|
||||||
|
from scheduler import init_scheduler_router
|
||||||
|
logger.info("[定时任务] 初始化定时任务 📦")
|
||||||
|
init_scheduler_router(app)
|
||||||
|
logger.info("[定时任务] 定时任务初始化完成 ✅")
|
||||||
|
|
||||||
|
|
||||||
def active_config():
|
def active_config():
|
||||||
logger.info(f"[激活配置] 加载配置 ⚙️")
|
logger.info(f"[激活配置] 加载配置 ⚙️")
|
||||||
@@ -31,5 +37,6 @@ async def lifespan(app: FastAPI):
|
|||||||
active_config()
|
active_config()
|
||||||
init_database()
|
init_database()
|
||||||
import_router(app)
|
import_router(app)
|
||||||
|
init_scheduler(app)
|
||||||
yield
|
yield
|
||||||
logger.info(f"[生命周期] 应用关闭 🔧✅")
|
logger.info(f"[生命周期] 应用关闭 🔧✅")
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ dependencies = [
|
|||||||
"wecom-sdk>=1.0.0",
|
"wecom-sdk>=1.0.0",
|
||||||
"xmltodict>=1.0.2",
|
"xmltodict>=1.0.2",
|
||||||
"psycopg2-binary>=2.9.11",
|
"psycopg2-binary>=2.9.11",
|
||||||
|
"fastscheduler[fastapi]>=0.1.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[dependency-groups]
|
[dependency-groups]
|
||||||
|
|||||||
7
scheduler/__init__.py
Normal file
7
scheduler/__init__.py
Normal 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()
|
||||||
@@ -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
18
uv.lock
generated
@@ -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" },
|
{ 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]]
|
[[package]]
|
||||||
name = "greenlet"
|
name = "greenlet"
|
||||||
version = "3.2.4"
|
version = "3.2.4"
|
||||||
@@ -1304,7 +1318,7 @@ wheels = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wxcom-wnzs-adapter"
|
name = "wecom-wnzs-adapter"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = { virtual = "." }
|
source = { virtual = "." }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
@@ -1312,6 +1326,7 @@ dependencies = [
|
|||||||
{ name = "casbin" },
|
{ name = "casbin" },
|
||||||
{ name = "fastapi", extra = ["standard"] },
|
{ name = "fastapi", extra = ["standard"] },
|
||||||
{ name = "fastapi-utils" },
|
{ name = "fastapi-utils" },
|
||||||
|
{ name = "fastscheduler", extra = ["fastapi"] },
|
||||||
{ name = "motor" },
|
{ name = "motor" },
|
||||||
{ name = "pickledb" },
|
{ name = "pickledb" },
|
||||||
{ name = "psycopg2-binary" },
|
{ name = "psycopg2-binary" },
|
||||||
@@ -1332,6 +1347,7 @@ requires-dist = [
|
|||||||
{ name = "casbin", specifier = ">=1.43.0" },
|
{ name = "casbin", specifier = ">=1.43.0" },
|
||||||
{ name = "fastapi", extras = ["standard"], specifier = ">=0.116.1" },
|
{ name = "fastapi", extras = ["standard"], specifier = ">=0.116.1" },
|
||||||
{ name = "fastapi-utils", specifier = ">=0.8.0" },
|
{ name = "fastapi-utils", specifier = ">=0.8.0" },
|
||||||
|
{ name = "fastscheduler", extras = ["fastapi"], specifier = ">=0.1.2" },
|
||||||
{ name = "motor", specifier = ">=3.7.1" },
|
{ name = "motor", specifier = ">=3.7.1" },
|
||||||
{ name = "pickledb", specifier = ">=1.3.2" },
|
{ name = "pickledb", specifier = ">=1.3.2" },
|
||||||
{ name = "psycopg2-binary", specifier = ">=2.9.11" },
|
{ name = "psycopg2-binary", specifier = ">=2.9.11" },
|
||||||
|
|||||||
Reference in New Issue
Block a user