ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

celery+django+mq 异步任务与定时任务

2019-12-15 23:02:03  阅读:400  来源: 互联网

标签:01 dj app django celery mq import


参考

celery
pip install celery==4.1.1
https://www.cnblogs.com/wdliu/p/9530219.html
https://www.jianshu.com/p/6f8576a37a3e

定时:
https://blog.csdn.net/Leo062701/article/details/90613651
https://blog.csdn.net/sicofield/article/details/50937338

配置

dj_01/dj_01/__init__.py

1 import pymysql
2 from .celery import app as celery_app
3 
4 pymysql.install_as_MySQLdb()
5 __all__ = ['celery_app']

dj_01/dj_01/celery.py

 1 from __future__ import absolute_import, unicode_literals
 2 import os
 3 from celery import Celery
 4 from django.conf import settings
 5 # set the default Django settings module for the 'celery' program.
 6 os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'dj_01.settings')
 7 
 8 app = Celery('dj_01',backend='amqp', broker='amqp://guest:guest@localhost:5672//')
 9 app.config_from_object('django.conf:settings')
10 app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)

dj_01/dj_01/setting.py


INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'mytest',

)
1 

# Celery 设置 2 # CELERY_BROKER_URL = 'redis://localhost:6379/0' 3 BROKER_URL = 'amqp://guest:guest@127.0.0.1:5672//' 4 CELERY_ACCEPT_CONTENT = ['json'] 5 CELERY_TASK_SERIALIZER = 'json' 6 CELERY_RESULT_SERIALIZER = 'json' 7 # CELERY_RESULT_BACKEND = 'django-db' 8 CELERY_TIMEZONE = 'Asia/Shanghai' 9 10 from datetime import timedelta 11 12 # 定时任务 13 CELERYBEAT_SCHEDULE = { 14 'add-every-30-seconds': { 15 'task': 'mytest.tasks.add', # 任务名 16 'schedule': timedelta(seconds=2), # 每2s执行一次该任务 17 'args': (2, 3) 18 } 19 }

 

异步任务

服务:celery -A dj_01 worker -l info

app/tasks.py

 1 from time import sleep
 2 from celery import shared_task
 3 
 4 @shared_task  #celery -A dj_01 worker -l info
 5 def celeryTest(*ags,**kwargs):
 6     print('耗时操作任务start...')
 7     print(ags)
 8     print(kwargs)
 9     sleep(10)
10     print('耗时操作任务end...')

app/view.py


from .tasks import celeryTest

1 def testt(req): 2 d = { 3 "result":'123123', 4 } 5 6 res = celeryTest.delay(json.dumps(d)) 7 print("res:%s"%res) #b9020fb2-61c1-494d-8e66-a86776943c76
8     return render(req, 'acc_login.html')

 

定时任务

服务:celery -A dj_01 beat -l info

https://blog.csdn.net/Leo062701/article/details/90613651
https://blog.csdn.net/sicofield/article/details/50937338

标签:01,dj,app,django,celery,mq,import
来源: https://www.cnblogs.com/zhang-dan/p/12046502.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有