Celery工程化代码

目录树

celery-learning
    |
    |-- celery_app
    |        |
    |        |-- __init__.py  # celery应用文件
    |        |
    |        |-- celeryconfig.py  # celery应用配置文件
    |        |
    |        |-- task1.py  # 任务文件1
    |        |
    |        |-- task2.py  # 任务文件2
    |
    |-- app.py  # 启动文件

文件内容

__init__.py文件内容如下:

from celery import Celery

app = Celery('demo')

# 通过celery实例加载配置模块
app.config_from_object('celery_app.celeryconfig')  

celeryconfig.py文件内容如下:

BROKER_URL = 'redis://localhost:6379/1'

CELERY_RESULT_BACKEND = 'redis://localhost:6379/2'

# 指定时区, 默认是UTC时间
CELERY_TIMEZONE = 'Asia/Shanghai'  # 默认是UTC时间



# 导入指定的任务模块
CELERY_IMPORTS = (
    'celery_app.task1',
    'celery_app.task2'
)

task1.py文件内容如下:

import time
from celery_app import app


@app.task
def add (x, y):
    time.sleep(4)
    return x + y

task2.py文件内容如下:

import time

from celery_app import app

@app.task
def multiply (x, y):
    time.sleep(4)
    return x * y

app.py文件内容如下:

from celery_app import task1
from celery_app import task2


task1.add.delay(3, 7)
task2.multiply.delay(4, 5)

print('end.......')

启动

首先启动celeryworker

ubantu@ubantu-virtual-machine:~/celery_learning$ celery worker -A celery_app -l info
 
 -------------- celery@ubantu-virtual-machine v4.2.1 (windowlicker)
---- **** ----- 
--- * ***  * -- Linux-4.13.0-36-generic-x86_64-with-Ubuntu-16.04-xenial 2019-02-14 22:00:51
-- * - **** --- 
- ** ---------- [config]
- ** ---------- .> app:         demo:0x7ffa152f4860
- ** ---------- .> transport:   redis://localhost:6379/1
- ** ---------- .> results:     redis://localhost:6379/2
- *** --- * --- .> concurrency: 2 (prefork)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** ----- 
 -------------- [queues]
                .> celery           exchange=celery(direct) key=celery
                

[tasks]
  . celery_app.task1.add
  . celery_app.task2.multiply

[2019-02-14 22:00:51,520: INFO/MainProcess] Connected to redis://localhost:6379/1
[2019-02-14 22:00:51,544: INFO/MainProcess] mingle: searching for neighbors
[2019-02-14 22:00:52,600: INFO/MainProcess] mingle: all alone
[2019-02-14 22:00:52,612: INFO/MainProcess] celery@ubantu-virtual-machine ready.

再启动启动文件app.py

python3 app.py

输出

end.......
[2019-02-14 22:12:55,146: INFO/MainProcess] Received task: celery_app.task1.add[28496956-4112-496c-a80c-d3300e8cd304]  
[2019-02-14 22:12:55,148: INFO/MainProcess] Received task: celery_app.task2.multiply[176c76e5-d506-4fd5-b339-0f5acb7b72ac]  
[2019-02-14 22:12:59,194: INFO/ForkPoolWorker-1] Task celery_app.task1.add[28496956-4112-496c-a80c-d3300e8cd304] succeeded in 4.042472552000618s: 5
[2019-02-14 22:12:59,194: INFO/ForkPoolWorker-2] Task celery_app.task2.multiply[176c76e5-d506-4fd5-b339-0f5acb7b72ac] succeeded in 4.043666542998835s: 15

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值