我最近被迫将我的应用程序转移到亚马逊并使用自动扩展,我偶然发现了一个与 cron 作业和自动扩展有关的问题。
我有一个每 15 分钟运行一次的 cron 作业,它检查是否应该对订阅收费,查询选择所有过期的订阅,并尝试对其收费。处理后会改变它们的状态,但是它们是分批提取的,这个过程需要 1-3 分钟。
如果我有多个具有相同 cron 作业的实例,它可能会同时触发并多次收取订阅费用。这实际上已经发生过一次。
这里最好的方法是什么?不知何故锁定表或?
我正在使用 Amazon elastic beanstalk 和 symfony3。