是否可以使用相同的redis数据库用于使用芹菜的多个项目?就像使用密钥前缀将多个项目的相同数据库用作缓存一样。或者我是否必须为每次安装使用单独的数据库?
答案 0 :(得分:13)
总结这篇有用的博文:http://kfalck.net/2013/02/21/run-multiple-celeries-on-a-single-redis
答案 1 :(得分:0)
我使用了一个redis后端用于芹菜,同时也使用带有前缀缓存数据的相同redis数据库。我在开发期间这样做,我只使用redis作为结果后端而不是排队任务,生产部署最终成为所有AMQP(redis仅用于缓存)。我没有任何问题,也不明白为什么会这样(除了性能问题)。
对于运行具有不同任务定义的多个芹菜项目,我认为问题是如果您有两种不同类型的工作人员,每个工作人员只能处理一部分工作类型。没有单独的数据库,我不确定工人如何能够分辨他们可以处理哪些工作。
我可能要么确保所有工作人员都定义了所有任务类型,并且可以处理任何事情,或者希望将单独的项目保存在单独的数据库中。这不需要安装任何额外的东西,你只需在你的一个芹菜项目中指定一个REDIS_DB = 1。可能还有另一种方法可以做到这一点。我不确定是否需要多个DB,但它有点意义。
如果您只使用redis作为结果后端,那么可能在一个redis数据库上有多个芹菜项目......我不太确定。