gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 00:27:58 30 4
gpt4 key购买 nike

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

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

我搜索了文档(saw flower 和 curl 选项),但那里没有调用预定义任务的真正好例子。如何实现?

最佳答案

假设你已经安装了带有 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

启动一个worker:

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 - Celery - 通过命令行或 HTTP 请求激活任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26710140/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com