在Redis后端使用多个芹菜安装

2024-04-26 21:38:11 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有可能将同一个redis数据库用于使用芹菜的多个项目?就像在多个项目中使用同一个数据库作为使用键前缀的缓存一样。还是每次安装都要使用单独的数据库?在


Tags: 项目redis数据库芹菜
2条回答

从这篇有用的博客文章中总结:http://kfalck.net/2013/02/21/run-multiple-celeries-on-a-single-redis

  • 为每个项目指定不同的数据库编号,例如。redis://localhost/0以及redis://localhost/1在
  • 为不同的项目定义和使用不同的队列名称。在任务端,定义CELERY_DEFAULT_QUEUE,在启动worker时,使用-Q参数指定该队列。在此处阅读有关路由的更多信息:http://docs.celeryproject.org/en/latest/userguide/routing.html

我为celery使用了redis后端,同时也使用了带有前缀缓存数据的相同redis db。我是在开发过程中这样做的,我只在结果后端使用redis而不是对任务进行排队,而生产部署最终都是AMQP(redis只用于缓存)。我没有任何问题,也不明白为什么会有问题(除了性能问题)。在

对于运行具有不同任务定义的多个芹菜项目,我认为问题是如果您有两种不同类型的工人,而每个工人只能处理作业类型的子集。如果没有单独的数据库,我不知道工人们如何判断他们可以处理哪些工作。在

我可能希望确保所有工人都定义了所有任务类型,并且可以处理任何事情,或者希望将单独的项目保存在不同的数据库中。这不需要安装任何额外的东西,只需在celery项目中指定一个REDIS_DB=1。也许还有别的办法。我不确定是否需要多个数据库,但这有点合理。在

如果你只使用redis作为一个结果后端,也许在一个redis数据库上有多个芹菜项目。。。我不太确定。在

相关问题 更多 >