添加 Celery 设置 - 它有什么作用?

问题描述 投票:0回答:3

我们升级了 Celery 并开始收到警告:

CPendingDeprecationWarning:broker_connection_retry 配置 设置将不再确定代理连接重试是否 在 Celery 6.0 及以上版本启动时制作。如果您想保留 启动时重试连接的现有行为,您应该设置 将broker_connection_retry_on_startup设置为True。

我们使用 Redis 作为代理。我尝试理解什么意思:“在启动期间进行代理连接重试” - 我们需要这个吗?我们不需要这个吗?这是什么?为什么我们应该使用它?

celery
3个回答
20
投票

除了 @DejanLekic 的出色响应之外,您还可以通过将以下代码放入

celery.py
中,利用以下设置来消除警告。

celery_app.conf.broker_connection_retry_on_startup = True

或者使用 django 设置文件

CELERY_BROKER_CONNECTION_RETRY_ON_STARTUP = True

10
投票

这是针对 Celery 6 中将出现的更改的弃用警告。显然,他们决定引入一个新的布尔配置参数

broker_connection_retry_on_startup
,可用于告诉 Celery 是否应该在启动期间重试建立连接。如您所知,当您启动 Celery Worker 时,它几乎会立即尝试与 Broker 进行通信。如果代理未运行或网络存在问题,工作人员将继续重试与代理建立通信(在您的情况下为 Redis)。


0
投票

这是 Celery 版本

<6.0
的当前逻辑,在启动时重试连接,如果您想保留该逻辑,请通过将参数添加到 Celery 的配置中来明确执行。

单个文件中的 Celery 示例 tasks.py

from celery import Celery

app = Celery(
    'tasks',
    broker='redis://127.0.0.1:6379',
    broker_connection_retry_on_startup=True, # here it is!!!
)


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

© www.soinside.com 2019 - 2024. All rights reserved.