django中使用celery(三)
来源:互联网 发布:网络用语up是什么意思 编辑:程序博客网 时间:2024/04/23 17:28
如果我们想某日某时执行某个任务,或者每隔一段时间执行某个任务,也可以使用celery来完成.
使用定时任务,需要安装额外包:
pip install django_celery_beat首先在settings.py中安装此应用:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'demo', 'django_celery_results', 'django_celery_beat', # 安装应用]在celery_demo/celery.py模块中增加定时任务配置:
from celery import Celeryfrom django.conf import settingsimport os# 为celery设置环境变量os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'celery_demo.settings')# 创建应用app = Celery("demo")# 配置应用app.conf.update( # 配置broker, 这里我们用redis作为broker BROKER_URL='redis://:332572@127.0.0.1:6379/1', # 使用项目数据库存储任务执行结果 CELERY_RESULT_BACKEND='django-db', # 配置定时器模块,定时器信息存储在数据库中 CELERYBEAT_SCHEDULER='django_celery_beat.schedulers.DatabaseScheduler',)# 设置app自动加载任务# 从已经安装的app中查找任务app.autodiscover_tasks(settings.INSTALLED_APPS)由于定时器信息存储在数据库中,我们需要先生成对应表, 对diango_celery_beat执行迁移操作,创建对应表:
python manage.py migrate django_celery_beat
我们可登录网站后台Admin去创建对应任务, 首先我们先在tasks.py模块中增加新的任务,用于定时去执行(5秒执行一次)
from celery_demo.celery import appimport time# 用于定时执行的任务@app.taskdef interval_task(): print("我每隔5秒钟时间执行一次....")首先创建后台管理员帐号:
python manage.py createsuperuser登录管理后台Admin:
其中Crontabs用于定时某个具体时间执行某个任务的时间,Intervals用于每隔多久执行任务的事件,具体任务的执行在Periodic tasks表中创建。
我们要创建每隔5秒执行某个任务,所以在Intervals表名后面点击Add按钮:
启动定时任务:
celery -A celery_demo worker -l info --beat
任务每隔5秒中就会执行一次,如果配置了存储,那么每次任务执行的结果也会被保存到对应的数据库中。
阅读全文
1 0
- django中使用celery(三)
- django中使用celery(一)
- django中使用celery(二)
- django 、celery 中logging的使用
- Django中如何使用django-celery完成异步任务
- Django中如何使用django-celery完成异步任务 (1)
- Django中如何使用django-celery完成异步任务 (2)
- Django中如何使用django-celery完成异步任务 (2)
- Django中使用django-celery完成异步任务(1)
- django celery使用
- django-celery简单使用
- django使用celery
- jango中如何使用django-celery完成异步任务 (1)
- Django中使用Celery实现定时任务(用djcelery)
- 异步任务利器Celery(二)在django项目中使用Celery
- Django中异步任务celery
- Python - Django分布式Celery使用
- 使用 django+celery+RabbitMQ 实现异步执行
- 向其他进程注入代码的三种方法
- Spring AOP的实现策略与使用
- 170920 逆向-CTF练习平台(RE-love)
- 【springboot 入门篇】第0篇 spring-boot是什么
- Ubuntu16编译Android4.4.2源码ubinize does not exist问题的解决方法
- django中使用celery(三)
- 22. Generate Parentheses
- 刷题记录-luoguP2679 子串
- jsp用到的jstl标签语言库之function标签库(三)
- 【springboot 入门篇】第1篇 第一个spring-boot程序(多种搭建方式)
- Java语言Socket接口用法详解
- 介绍bean的
- 10种常见的进程注入技术的总结
- JDBC基础==12.2.1如何获得Connection对象