【发布时间】:2017-09-13 11:51:58
【问题描述】:
我目前在服务器上设置了几个站点,它们都使用 beanstalkd 作为队列。其中一些站点是临时站点。虽然我知道将暂存站点放在另一台服务器上是理想的,但在这种情况下为它启动另一台服务器在经济上没有意义。
我最近遇到了一个非常令人困惑的问题,我正在部署一个临时站点,其中包括数据库的重新播种。我在某些模型保存上设置了观察者,这将触发要排队的作业,这通常最终会发送一封电子邮件。暂存站点实际上没有设置任何队列工作程序来运行它们,但生产站点(在同一台服务器上)确实有队列工作程序正在运行。
似乎正在发生的是暂存站点正在生成队列作业,而生产站点正在运行这些队列作业!这会导致我的随机用户收到垃圾邮件,因为它会从 staging 序列化模型,当它反序列化运行作业时,它实际上与实际的生产用户匹配。
在一个服务器上运行队列似乎很常见,所以我很好奇是否有办法避免这个问题。 Elasticsearch 具有“集群”的概念,因此您可以在一台服务器上运行多个搜索“集群”。我很好奇 beanstalkd 或 redis 或任何其他队列提供程序是否具有此功能,因此我们在完全独立的网站之间没有串扰。
谢谢!
【问题讨论】:
-
我将提交 PR 以允许自动为管名添加“前缀”。提交后我会在此处链接。
标签: php laravel beanstalkd