• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

  • 共43篇

    python3.X - Web - Django3.2.9

关闭

返回栏目

关闭

返回python3.X - Web - Django3.2.9栏目

35 - 扩展 - 定时任务 - django-apscheduler - add_job()方式

作者:

贺及楼

成为作者

更新日期:2024-06-13 21:03:07

django-apscheduler

手动用户创建、可以用来改变或者移除 job

代码

  1. import json
  2. from django.http import JsonResponse
  3. from apscheduler.schedulers.background import BackgroundScheduler
  4. from django_apscheduler.jobstores import DjangoJobStore, register_events, register_job
  5. scheduler = BackgroundScheduler()
  6. scheduler.add_jobstore(DjangoJobStore(), 'default')
  7. # 与前端的接口
  8. def test_add_task(request):
  9. if request.method == 'POST':
  10. content = json.loads(request.body.decode()) # 接收参数
  11. try:
  12. start_time = content['start_time'] # 用户输入的任务开始时间, '10:00:00'
  13. start_time = start_time.split(':')
  14. hour = int(start_time)[0]
  15. minute = int(start_time)[1]
  16. second = int(start_time)[2]
  17. s = content['s'] # 接收执行任务的各种参数
  18. # 创建任务
  19. scheduler.add_job(test, 'cron', hour=hour, minute=minute, second=second, args=[s])
  20. code = '200'
  21. message = 'success'
  22. except Exception as e:
  23. code = '400'
  24. message = e
  25. back = {
  26. 'code': code,
  27. 'message': message
  28. }
  29. return JsonResponse(json.dumps(data, ensure_ascii=False), safe=False)
  30. # 具体要执行的代码
  31. def test(s):
  32. pass
  33. register_events(scheduler)
  34. 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种方法
第一就把任务删了重新创建,
第二直接操作数据库,
第三用到下面重设任务。