现在,我们有一台带cronjob选项卡的单个服务器,每天发送电子邮件。我们想扩展那台服务器。该应用程序是部署在亚马逊云中的centos服务器上的标准zend框架应用程序。通过多台服务器扩展cronjob
我们已经负责负载平衡,内容管理和管理部署。然而,cronjob对我们来说仍然是一个问题,因为我们需要授予某些工作只执行一次。
例如,每天的电子邮件cronjob只能由一台服务器执行一次。我正在寻找最好的方法,只有一台服务器只会执行一次。
我在想2种解决方案,但我想知道是否有其他人有同样的问题。
- 使其中一台服务器“主”,谁只发出每日电子邮件。这将是一个问题,如果服务器故障,并且我们通常不想拥有“特殊”服务器。这也意味着我们需要跟踪哪个服务器是主服务器。
- 有一个要执行的计划任务队列。每个服务器打开该队列并查看需要执行哪些任务。第一个“抓住”任务的服务器将执行任务并将其标记为完成。我在查看亚马逊简单排队服务作为队列的解决方案。
这两种解决方案都有优点和缺点,我想知道是否有人想到可能帮助我们的其他人。
这可能会更好地ServerFault服务? –