- pip install django_apscheduler
- 在settings.py中加入:
INSTALLED_APPS = [
......
'django_apscheduler',
......
]
- python mange.py migrate
5.新建一个py文件,开始写定时任务
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.triggers.cron import CronTrigger
from django_apscheduler.jobstores import DjangoJobStore
from app.jobs.report.alert import alert_work
from app.jobs.report.resource_metrice import resouce_metric_work
from app.jobs.report.resource_set import resouce_set_work
class SheduleJob:
__instance = None
def __new__(cls, *args, **kwargs):
if cls.__instance is None:
cls.__instance = super().__new__(cls)
return cls.__instance
else:
return cls.__instance
def __init__(self):
self.scheduler = BackgroundScheduler()
self.scheduler.add_jobstore(DjangoJobStore(), 'default')
def add_job(self):
self.scheduler.add_job(resouce_set_work, 'cron', minute='*', id='resouce_set_work',
replace_existing=True,
max_instances=2, misfire_grace_time=180)
self.scheduler.add_job(resouce_metric_work, 'interval', seconds=120, id='resouce_metric_work',
replace_existing=True,
max_instances=2, misfire_grace_time=180)
self.scheduler.add_job(alert_work, 'cron', minute='*/3', id='alert_work',
replace_existing=True,
max_instances=2, misfire_grace_time=180)
def start(self):
self.add_job()
self.scheduler.start()
def stop(self):
pass
def pause(self):
pass
def resume(self):
pass
job = SheduleJob()