Django异步工具Celery安装

一、环境要求

操作系统版本:centos
操作系统内核:4.7.1
系统工具:yum
数据分区(200G容量以上):/data

二、安装Celery相关服务

pip install celery
pip install celery-with-redis
pip install django-celery

三、编辑:settings.py文件添以下内容

#####配置celery####
import djcelery
djcelery.setup_loader()
BROKER_URL = 'redis://xx.xx.xx.xx:6379/10'
CELERY_RESULT_BACKEND = 'redis://xx.xx.xx.xx:6379/11'
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_TIMEZONE = 'Africa/Nairobi'
SECRET_KEY = '8lu*6g0lg)9z!ba+a$ehk)xt)x%rxxgb$i1&022shmi1jcgihb*'

四、编辑:jumpserver/init.py文件添以下内容

from __future__ import absolute_import
from .celery import app as celery_app

五、编辑:jumpserver/celery.py文件添以下内容

from __future__ import absolute_import  
import os
import django
from celery import Celery  
from django.conf import settings  

# set the default Django settings module for the 'celery' program.  
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'jumpserver.settings')
django.setup()
app = Celery('jumpserver')

# Using a string here means the worker will not have to  
# pickle the object when using Windows.  
app.config_from_object('django.conf:settings')  
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)  

@app.task(bind=True)  
def debug_task(self):  
    print('Request: {0!r}'.format(self.request))

六、编辑:jumpserver/tasks.py文件添以下内容

from jumpserver import celery_app

@celery_app.task()
def longtime_addd(x, y):
    print 'long time task begins'
    # sleep 5 seconds
    time.sleep(5)
    print 'long time task finished'
    return x + y

七、启动celery

celery -A jumpserver worker -l info

八、测试

python manage.py shell

from deploy.tasks import *

result = longtime_addd.delay(1,2)

print 'Task finished? ', result.ready()
print 'Task result: ', result.result

九、结合supervisor配置后台运行celery

安装:pip install supervisor
生成配置文件:echo_supervisord_conf > /etc/supervisord.conf
编辑配置文件:/etc/supervisord.conf添加以下内容
[program:celery]
command=celery -A jumpserver worker --loglevel=info
directory=/data/xxxxx
stdout_logfile=/data/xxxxx/logs/celery.log
autorestart=true
redirect_stderr=true

启动:supervisord -c /etc/supervisord.conf

查看日志:tail -f /data/polaris/logs/celery.log





     本文转自aaron428 51CTO博客,原文链接:http://blog.51cto.com/aaronsa/2056883,如需转载请自行联系原作者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值