python – Celery – 通过命令行或HTTP请求激活任务
发布时间:2020-12-20 12:31:33 所属栏目:Python 来源:网络整理
导读:我的代码中有一个预定义的celery任务,比如my_proj.tasks.my_celery_task 我想通过命令行/ 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |