编程语言
首页 > 编程语言> > python – Celery – 通过命令行或HTTP请求激活任务

python – Celery – 通过命令行或HTTP请求激活任务

作者:互联网

我的代码中有一个预定义的celery任务,比如my_proj.tasks.my_celery_task

我想通过命令行/ HTTP请求(而不是通过我的应用程序)激活任务.

我搜索了文件(看到花和卷曲选项),但没有一个真正好的例子,在那里调用预定义的任务.怎么做到这一点?

解决方法:

假设您已经使用Rabbitmq安装了Celery,这是一个简单的示例.

定义任务:my_app.py

from celery import Celery

app = Celery('tasks', backend='amqp', broker='amqp://')

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

开始一个工人:

celery worker -l info -A my_app

开始花

flower -A my_app

通过命令行将任务添加到队列

curl -X POST -d '{"args":[1,2]}' http://localhost:5555/api/task/async-apply/my_app.add

或通过要求

import requests, json
api_root = 'http://localhost:5555/api'
task_api = '{}/task'.format(api_root)
args = {'args': [1, 2]}
url = '{}/async-apply/my_app.add'.format(task_api)
print(url)
resp = requests.post(url, data=json.dumps(args))
reply = resp.json()
reply

标签:python,scheduled-tasks,celery,flower,celery-task
来源: https://codeday.me/bug/20190714/1459341.html