在2个位置等待celery 任务的结果被卡住

rm5edbpk  于 2021-06-09  发布在  Redis
关注(0)|答案(0)|浏览(269)

我用django,celery 和redis来执行任务。


# settings.py

CELERY_BROKER_URL = 'redis://localhost:6379/0'
CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
CELERY_APP = "my_app"

# tasks.py

@task(name="my_task", track_started = True)
def my_task():
    time.sleep(5)
    # Do stuff
    return True

我在应用程序中的两个不同位置调用此任务:


# test1.py

task = my_task.delay()
result = task.get()
print(result) # Shows True after 5 seconds

# test2.py

task = AsyncResult(my_task_id)
print(task.status) # Shows STARTED
print(task) # Shows the right id
result = task.get() # Get stuck here
print(result) # This line never appears in console

当然,test1.py中的脚本是在test2.py之前调用的。我确信身份证是正确的。我在celery 的日志里和django都没有留言。只是卡住了。
我已经尝试过这里描述的解决方案:通过celery 中的id检索任务结果

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题