djcelery自定义前端实现动态作业任务

1610阅读 0评论2020-07-24 fengqiyunyong123
分类:Python/Ruby

   之前写过使用celery实现定时任务的文章,但是每次修改都是代码级别,每次增加都要修改配置,然后执行应用发布重启等等,比较麻烦。那有没有能够直接通过修改数据来实现定时任务的修改的呢?当然有,django的djcelery本身后台就有。其他跟celery配置一致。
   
主要Crontabs,Intervals,Periodic Tasks三个表。
   Crontabs对应表为djcelery.models.CrontabSchedule,内容为 
               "id": 1,
                "minute": "*",
                "hour": "*",
                "day_of_week": "*",
                "day_of_month": "*",
                "month_of_year": "*"
格式跟crond服务的时间一致
  Intervals对应表为djcelery.models.
IntervalSchedul,内容为
             "id": 1,
              "every": 5,
              "period": "minutes/days/hours/seconds"
 表示时间间隔
   
PeriodicTask为主表,对应djcelery.models.PeriodicTask,表内容为
       

点击(此处)折叠或打开

  1. {
  2.             "id": 1,
  3.             "crontab": null,
  4.             "interval": {
  5.                 "id": 1,
  6.                 "every": 5,
  7.                 "period": "minutes"
  8.             },
  9.             "date_changed": "2020-07-24 14:41:18",
  10.             "name": "ato",
  11.             "task": "api.tasks.save_height",
  12.             "args": "[]",
  13.             "kwargs": "{}",
  14.             "queue": null,
  15.             "exchange": null,
  16.             "routing_key": null,
  17.             "expires": null,
  18.             "enabled": true,
  19.             "last_run_at": null,
  20.             "total_run_count": 0,
  21.             "description": ""
  22.         }
   其中interval和
crontab只能选择一种。

介绍完基本情况,要是我不想使用默认的后台,要使用自定义的前端来编辑作业任务。这时候就把periodtask作为接口对外开放了。这部分详见之前的restframework的介绍。
      
上一篇:django使用ldap进行用户登录认证
下一篇:没有了