"""定时任务注册 岗位清洗和公司补充改为持续消费模型(启动即运行), 其余辅助任务保留定时调度。 """ import asyncio from datetime import datetime 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: """创建并注册辅助定时任务(岗位清洗/公司补充由 main 直接启动)""" scheduler = AsyncIOScheduler( timezone="Asia/Shanghai", job_defaults={"misfire_grace_time": 60}, ) # 岗位僵尸恢复(每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_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)