目录树
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.......')
启动
首先启动celery
的worker
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