python - Celery 群发任务
问题描述
所以我在 celery 中有一些任务没有在当前进程中注册,而我想要实现的是实际为多个任务进行组调用。例如:
from celery import group, Signature, signature
from task_app import celery_app
from celery.execute import send_task
workflow = group([
send_task(
'my_task.deploy',
kwargs={
'name': 'dev1',
'site': 'somesite',
'sleep': 1
},
immutable=True,
app=celery_app,
)]
)
result = workflow()
print(result.get())
问题是使用send_task
is group 会给我这个错误
Traceback (most recent call last):
File "workflows.py", line 17, in <module>
result = workflow()
File "/home/env/lib/python3.8/site-packages/celery/canvas.py", line 1077, in __call__
return self.apply_async(partial_args, **options)
File "/home/env/lib/python3.8/site-packages/celery/canvas.py", line 1102, in apply_async
results = list(self._apply_tasks(tasks, producer, app, p,
File "/home/env/lib/python3.8/site-packages/celery/canvas.py", line 1182, in _apply_tasks
for sig, res in tasks:
File "/home/env/lib/python3.8/site-packages/celery/canvas.py", line 1163, in _prepared
task = from_dict(task, app=app)
File "/home/env/lib/python3.8/site-packages/celery/canvas.py", line 139, in from_dict
typ = d.get('subtask_type')
File "/home/env/lib/python3.8/site-packages/celery/result.py", line 223, in get
return self.backend.wait_for_pending(
File "/home/env/lib/python3.8/site-packages/celery/backends/asynchronous.py", line 199, in wait_for_pending
for _ in self._wait_for_pending(result, **kwargs):
File "/home/env/lib/python3.8/site-packages/celery/backends/asynchronous.py", line 265, in _wait_for_pending
for _ in self.drain_events_until(
File "/home/env/lib/python3.8/site-packages/celery/backends/asynchronous.py", line 51, in drain_events_until
if timeout and time.monotonic() - time_start >= timeout:
TypeError: '>=' not supported between instances of 'float' and 'str'
更多的是,我尝试使用signature
方法进行调用,但我不知道如何在本地环境上进行单元测试时模拟这个签名。
有任何想法吗 ?
解决方案
推荐阅读
- php - 获取数组中的错误 - CRUD PHP/MYSQL
- ios - 我无法在 iOS App Store 上查看应用程序新版本
- c# - 在 C# 中创建派生对象时基本变量的内存分配?
- python - Python - 如何防止for循环覆盖相同的excel表
- sapui5 - 无法读取未定义的属性“读取”
- angular - Typescript ES6 箭头语法
- dependency-injection - symfony 3.4 服务别名
- c# - BootstrapGridView 没有显示关于排序/分组的数据
- c++ - 在 Meson 中,我可以避免不断地从源代码跳转到构建目录并返回吗?
- angular - 无法以角度 2 将值呈现给 html