gpt4 book ai didi

python - 为什么 Celery 对 Redis 代理使用轮询?

转载 作者:IT王子 更新时间:2023-10-29 05:59:43 26 4
gpt4 key购买 nike

根据 its documentation on the interval option当使用 Redis 后端时,Celery 轮询结果,默认使用 0.5 秒的间隔。

天真的开发人员可能认为任何使用 Redis 的排队系统至少会尝试利用其 LIST 或 PUBSUB 机制。为什么 Celery 不这样做而是依赖于轮询?

例如,当通过 Celery worker 运行时,以下代码在 r.get() 调用上花费了恰好 0.5 秒(这是默认的轮询间隔):

from celery import Celery

app = Celery('tasks', broker='redis://localhost:6379/0',
backend="redis://localhost:6379/0")

@app.task
def add(x, y):
return x + y

if __name__ == "__main__":
r = add.delay(5, 4)
result = r.get()
print(result)

最佳答案

轮询是任何新结果存储的默认实现,因为它无需后端特定代码即可工作。使用 Redis PUB/SUB 在愿望 list 上;代码尚未编写:https://github.com/celery/celery/issues/799

关于python - 为什么 Celery 对 Redis 代理使用轮询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22359334/

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