
import jsonfrom django.http import JsonResponsefrom apscheduler.schedulers.background import BackgroundSchedulerfrom django_apscheduler.jobstores import DjangoJobStore, register_events, register_jobscheduler = BackgroundScheduler()scheduler.add_jobstore(DjangoJobStore(), 'default')# 与前端的接口def test_add_task(request):if request.method == 'POST':content = json.loads(request.body.decode()) # 接收参数try:start_time = content['start_time'] # 用户输入的任务开始时间, '10:00:00'start_time = start_time.split(':')hour = int(start_time)[0]minute = int(start_time)[1]second = int(start_time)[2]s = content['s'] # 接收执行任务的各种参数# 创建任务scheduler.add_job(test, 'cron', hour=hour, minute=minute, second=second, args=[s])code = '200'message = 'success'except Exception as e:code = '400'message = eback = {'code': code,'message': message}return JsonResponse(json.dumps(data, ensure_ascii=False), safe=False)# 具体要执行的代码def test(s):passregister_events(scheduler)scheduler.start()
第一个参数是参数名
“package.module:some.object”,即 包名.模块:函数名
| 动作 | 使用 | 例子 |
|---|---|---|
| 删除任务 | scheduler.remove_job(job_name) |
|
| 暂停任务 | scheduler.pause_job(job_name) |
|
| 开启任务 | scheduler.resume_job(job_name) |
|
| 获取所有任务 | scheduler.get_jobs() |
|
| 修改任务 | scheduler.modify_job(job_name) |
|
| 重设任务 | scheduler.reschedule_job(job_name) |
scheduler.reschedule_job(job_id="job1", trigger='interval', minutes=1) |
注:修改任务只能修改参数,如果要修改执行时间的话,有3种方法
第一就把任务删了重新创建,
第二直接操作数据库,
第三用到下面重设任务。