Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1648561
  • 博文数量: 63
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 646
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-26 18:02
个人简介

祸兮福之所倚,福兮祸之所伏

文章分类

全部博文(63)

文章存档

2020年(11)

2019年(10)

2017年(10)

2016年(25)

2015年(7)

我的朋友

分类: Python/Ruby

2020-07-24 16:29:22

   之前写过使用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的介绍。
      
阅读(1611) | 评论(0) | 转发(0) |
0

上一篇:django使用ldap进行用户登录认证

下一篇:没有了

给主人留下些什么吧!~~