|
@@ -4,14 +4,12 @@ from django_apscheduler.jobstores import DjangoJobStore
|
|
|
from Ansjer.config import LOGGER
|
|
|
from django_apscheduler.models import DjangoJob
|
|
|
import datetime
|
|
|
-from apscheduler.triggers.cron import CronTrigger
|
|
|
|
|
|
|
|
|
class ApschedulerObject:
|
|
|
def __init__(self):
|
|
|
self.scheduler = BackgroundScheduler()
|
|
|
self.scheduler.add_jobstore(DjangoJobStore(), 'default')
|
|
|
- self.scheduler.start()
|
|
|
|
|
|
@staticmethod
|
|
|
def auto_hello(): # 任务
|
|
@@ -20,13 +18,16 @@ class ApschedulerObject:
|
|
|
|
|
|
def create_cron_job(self, func, task_id, day_of_week, hour, minute, args): # 周期任务
|
|
|
self.scheduler.add_job(func=func, trigger='cron', day_of_week=day_of_week, hour=hour, minute=minute,
|
|
|
- replace_existing=True, id=task_id, max_instances=1, coalesce=False, args=args)
|
|
|
+ replace_existing=True, id=task_id, max_instances=1, coalesce=False, args=args,
|
|
|
+ misfire_grace_time=300)
|
|
|
+ self.scheduler.start()
|
|
|
|
|
|
def create_interval_job(self, func, task_id, minutes, start_time, end_time, args): # 间隔任务
|
|
|
self.scheduler.add_job(func=func, trigger='interval', minutes=minutes,
|
|
|
start_date=datetime.datetime.fromtimestamp(start_time),
|
|
|
end_date=datetime.datetime.fromtimestamp(end_time),
|
|
|
replace_existing=True, id=task_id, max_instances=1, coalesce=False, args=args)
|
|
|
+ self.scheduler.start()
|
|
|
|
|
|
def create_date_job(self, func, task_id, time_stamp, args):
|
|
|
"""
|
|
@@ -39,6 +40,7 @@ class ApschedulerObject:
|
|
|
"""
|
|
|
self.scheduler.add_job(func=func, trigger='date', run_date=datetime.datetime.fromtimestamp(time_stamp),
|
|
|
replace_existing=True, id=task_id, max_instances=1, coalesce=False, args=args)
|
|
|
+ self.scheduler.start()
|
|
|
|
|
|
@staticmethod
|
|
|
def del_job(task_id): # 删除任务
|