Files
offerpie_job_cleaner/app/scheduler/tasks.py
T
2026-07-09 15:30:02 +08:00

77 lines
2.0 KiB
Python

"""定时任务注册
岗位清洗和公司补充改为持续消费模型(启动即运行),
其余辅助任务保留定时调度。
"""
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)