介绍
这篇文章给大家介绍定时任务怎么在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中设置