芹菜任务仍处于"待定状态"



我配置了一个Celery实例,如下所示:

from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings')
app = Celery(
'project', 
backend='rpc://',
broker='pyamqp://',
result_backend = 'rpc://'
)
app.autodiscover_tasks()
@app.task(bind=True)
def debug_task(self):
print(f'Request: {self.request!r}')

我有一项任务:

app = Celery('spotifycluster',broker='pyamqp://guest@localhost//')
@app.task
def some_task(X):
time.sleep(2)
return sum(X)

当我调用任务并检查其状态时,它总是"PENDING"。

task = some_task.delay(features)
task_id = task.task_id
state = AsyncResult(id=task_id).state

但终端显示:

[2021-06-30 16:11:00,072: INFO/MainProcess] Task spotify.tasks.AffinityPropagation_task[09a1812b-1044-480a-a0fb-49be2e5cdc94] received
[2021-06-30 16:11:02,077: INFO/ForkPoolWorker-2] Task spotify.tasks.AffinityPropagation_task[09a1812b-1044-480a-a0fb-49be2e5cdc94] succeeded in 2.002569585999993s: 4

这让我很困惑。我读过其他问题,但这些问题大多与Windows上的一个错误有关。我在Mac上跑步。我在这里错过了什么?我们非常感谢您的建议。

尝试更改为另一个broker。在我的情况下,没有任何帮助,直到我完全从RabbitMQ转到Redis。下面的设置是Django在Heroku上运行的。

CELERY_RESULT_BACKEND = os.environ.get('REDIS_URL', 'redis://localhost:6379/0')
CELERY_BROKER_URL = os.environ.get('REDIS_URL', 'redis://localhost:6379/0')

相关内容

  • 没有找到相关文章

最新更新