定时任务怎么在Django中设置

  介绍

这篇文章给大家介绍定时任务怎么在Django中设置,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

Django作为后端Web开发框架,有时候我们需要用到定时任务来或者固定频次的任务来执行某段代码,这时我们就要用到芹菜了.Django中有一个中间件:Django-celery

<强>环境:

<李>

Python 3.6

<李>

Django为小于1.8版本

<李>

芹菜为3.1版本

<强>第一步安装:Django-celery

pip  install  Django-celery

<强>第二步:配置芹菜和任务

创建测试Django环境:

django-admin.py  createproject 测试   django-admin.py  startapp 演示

创建好的项目布局如下:

安康;项目/安康;jobs   安康;项目/安康才能;__init__ . py   安康;celery.py才能   安康;settings.py才能   安康才能;urls . py   安康;演示/之处,才能迁移   安康才能;__init__ . py   安康;admin.py才能   安康;apps.py才能   安康;models.py才能   安康;tasks.py才能   安康;tests.py才能   安康;才能views.py

<强> 2.1配置celery.py文件

需要替换的内容,我都在对应的行后提示了,剩下的内容默认就好

创建测试/测试/芹菜。py文件,内容如下:

得到__future__  import  absolute_import, unicode_literals   import 操作系统   得到celery  import 芹菜   ,   #,set 从而,default  Django  settings  module  for 从而& # 39;芹菜# 39;程序。   os.environ.setdefault (& # 39; DJANGO_SETTINGS_MODULE& # 39;,, & # 39; proj.settings& # 39;),, #,替“proj.settings”换为你的项目信息:test.settings   ,   app =,芹菜(& # 39;项目# 39;),#,这里的项目替换为你的项目名称:测试   ,   #,Using  a  string  here  means 从而worker 并# 39;t  have 用序列化   #,从而configuration  object 用child 流程。   #,背后;名称空间=& # 39;芹菜# 39;,means  all  celery-related  configuration 键   #,,should  have  a “CELERY_”前缀。   app.config_from_object (& # 39; django.conf:设置# 39;,,名称空间=& # 39;芹菜# 39;)   ,   #,Load  task  modules 得到all  registered  Django  app 配置。   app.autodiscover_tasks ()   ,   ,   @app.task(绑定=True)   def  debug_task(自我):   打印才能(& # 39;要求:,{0 ! r} & # 39; .format (self.request))

<强> 2.2配置项目的init.py中配置芹菜内容

打开测试/测试/__init_。py文件,添加内容:

得到__future__  import  absolute_import, unicode_literals   ,   #,却;能够will  make  sure 从而app  is  always  imported 当   #,Django  starts  so  that  shared_task  will  use 却;能够应用。   得到.celery  import  app  as  celery_app   ,   __all__ =, (& # 39; celery_app& # 39;)

2.3在task.py中添加计划任务

编辑测试/演示/任务。py文件,添加计划任务,内容如下:

#, Create  your  tasks 这里   得到__future__  import  absolute_import unicode_literals   得到celery  import  shared_task   ,   ,   @shared_task   def 添加(x, y):   return 才能;x  + y   ,   ,   @shared_task   def  mul (x, y):   return 才能;x  *, y   ,   ,   @shared_task   def  xsum(数字):   return 才能;和(数字)

<强>第三步:任务执行

运行django项目:python管理。py runserver

<强> 3.1后台添加计划任务

访问“http://localhost: 8000/admin/?在芹菜的管理页面里,选择周期性任务,进行任务添加。选择对应的任务,设置定时或者周期时间

<强> 3.2启动定时的芹菜服务

注意:芹菜依赖复述,服务,需要提前运行复述,服务:“redis-server”

#,以下两个命令在不同的壳窗口里执行,需要在django的目录下   python  manager.py  celery  beat  -l  info , #接收定时任务的命令   python  manager.py  celery  worker  -l  info  #执行定时任务的命令,此壳窗口会看到任务的输入信息

定时任务怎么在Django中设置