如何在Celery中传递连接信息

2 投票
1 回答
733 浏览
提问于 2025-04-18 18:54

我想知道如何在使用Celery的时候,把用户和密码的连接信息加到我的消息代理(broker)里。我并没有使用Django框架,只是用Python 3。

我试过这样做:

app = Celery('tasks',
             broker='sqs://123:123',
             )

app.connection(
    userid="23",
    password="123",
    transport_options="{'region': 'eu-west-1'}"
)

1 个回答

2

你可以使用 config_from_object 这个方法。根据文档的说明:

这个方法可以从一个对象中读取配置,这个对象可以是一个实际的对象,或者是一个需要导入的模块的名字。

举个例子:

celeryconfig.py:

BROKER_TRANSPORT = 'amqp'
BROKER_USER = 'user'
BROKER_PASSWORD = 'password'
BROKER_HOST = 'remote.server.com'
BROKER_PORT = 123
#...

在模块中:

app = Celery('tasks')
app.config_from_object('celeryconfig')

撰写回答