Python配置celery+Redis执行异步任务

Python配置celery执行异步任务,只要配置好以后可以应用到任何耗时任务当中,非常好用

看一下
tasks.py

#!/usr/bin/env python
#!-*-coding:utf-8 -*-
import time
from celery import Celery

celery=Celery("ShiChuang",broker="redis://127.0.0.1:6379/14",backend='redis://127.0.0.1:6379/15')

@celery.task
def work_func(x, y):
    time.sleep(20)
    print("2222222222222222222")
    return x+y



# celery 启动命令
# celery -A ShiChuang.tasks.main worker --loglevel=info -P gevent

config.py

#!/usr/bin/env python
#!-*-coding:utf-8 -*-
#配置worker
BROKER_URL="redis://127.0.0.1:6379/14"
#配置backend
CELERY_RESULT_BACKEND="redis://127.0.0.1:6379/15"

# 每个worker执行了多少任务就会死掉
CELERYD_MAX_TASKS_PER_CHILD = 40

# 是否忽略celery的结果,如果设置为True,则不会把结果存储到redis[15]当中
CELERY_IGNORE_RESULT = False

main.py

#!/usr/bin/env python
#!-*-coding:utf-8 -*-
from celery import Celery

app=Celery("ShiChuang")
app.config_from_object("ShiChuang.tasks.config")
#让celery自己找到任务
app.autodiscover_tasks(["ShiChuang.tasks.tasks_tools"])

# 注意:ShiChuang是tasks上一级目录名

测试testing_celery.py脚本

#!/usr/bin/env python
#!-*-coding:utf-8 -*-
from celery.result import AsyncResult
from ShiChuang.tasks.tasks_tools.tasks import *
def run():
    res=work_func.delay(10,10)
    print(res.task_id)
    print('hello world')


run()

# 根据task_id获取celery执行的结果
# result = AsyncResult('e70b8878-9555-4b7b-a29c-2b2b73678312')  # 参数为task id
# print(result.result)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值