有没有办法给 celery beat 一个可调用的函数,它将返回参数传递给消息?我希望能够从数据库中提取数据来构造要传递给 celery 队列的参数。
我想做的是这样的:
CELERYBEAT_SCHEDULE = {
'every-minut1': {
'task': 'some_task',
'schedule': timedelta(hours=1),
'args': some_function_that_returns_a_tuple()
},
}
目前我有一台机器将消息添加到队列中,另一台机器将消息从队列中取出并处理它们。将消息添加到队列的机器对其参数进行了硬编码,但我希望它能够将该信息从数据库中提取出来。
我目前能想到的唯一解决方案是将消息添加到队列以运行 celery 本身的机器。它将有一个单独的队列来运行将消息添加到处理服务器的原始队列的命令。这似乎过于复杂,似乎应该有一个更简单的解决方案。