初始化

This commit is contained in:
zk
2026-06-02 17:44:03 +08:00
commit 30e6a6e2a5
34 changed files with 1692 additions and 0 deletions
View File
+105
View File
@@ -0,0 +1,105 @@
"""定时任务注册"""
from datetime import datetime, timedelta
from apscheduler.schedulers.asyncio import AsyncIOScheduler
from apscheduler.triggers.interval import IntervalTrigger
from apscheduler.triggers.cron import CronTrigger
from app.config import settings
from app.core.logger import log
def create_scheduler() -> AsyncIOScheduler:
"""创建并注册所有定时任务"""
scheduler = AsyncIOScheduler(
timezone="Asia/Shanghai",
job_defaults={"misfire_grace_time": 60},
)
# 岗位清洗(每 N 秒)
scheduler.add_job(
_job_clean_task,
trigger=IntervalTrigger(seconds=settings.clean_interval_seconds),
id="job_clean",
name="岗位清洗",
max_instances=1,
)
# 公司补充(每 N 秒)
scheduler.add_job(
_company_clean_task,
trigger=IntervalTrigger(seconds=settings.company_interval_seconds),
id="company_clean",
name="公司补充",
max_instances=1,
)
# 岗位僵尸恢复(每30分钟)
scheduler.add_job(
_job_zombie_task,
trigger=IntervalTrigger(minutes=30),
id="job_zombie_recover",
name="岗位僵尸恢复",
max_instances=1,
)
# 公司僵尸恢复(每小时)
scheduler.add_job(
_company_zombie_task,
trigger=IntervalTrigger(hours=1),
id="company_zombie_recover",
name="公司僵尸恢复",
max_instances=1,
)
# 岗位下架(每天凌晨2点)
scheduler.add_job(
_job_expire_task,
trigger=CronTrigger(hour=2, minute=0),
id="job_expire",
name="岗位下架",
max_instances=1,
)
return scheduler
async def _job_clean_task():
from app.services.job_clean_service import run_job_clean
try:
await run_job_clean()
except Exception as e:
log.error("岗位清洗任务异常: {}", e)
async def _company_clean_task():
from app.services.company_clean_service import run_company_clean
try:
await run_company_clean()
except Exception as e:
log.error("公司补充任务异常: {}", e)
async def _job_zombie_task():
from app.services.zombie_recover_service import recover_job_zombie
try:
await recover_job_zombie()
except Exception as e:
log.error("岗位僵尸恢复异常: {}", e)
async def _company_zombie_task():
from app.services.zombie_recover_service import recover_company_zombie
try:
await recover_company_zombie()
except Exception as e:
log.error("公司僵尸恢复异常: {}", e)
async def _job_expire_task():
from app.services.job_expire_service import run_job_expire
try:
await run_job_expire()
except Exception as e:
log.error("岗位下架异常: {}", e)