我有一个Laravel应用程序,它在后台运行一些Jobs,但我有多个应用程序实例。
其中一个作业向我的数据库中的某些记录发送电子邮件,但由于多个实例,它发送了多封电子邮件,现在我正在解决在执行时间内设置偏移并添加状态字段的问题将正在处理的记录设置为忙碌。
当系统有多个实例时,如果有人有另一种解决此类问题的方法,我想知道。
提前致谢。 如果您想了解更多信息,请告诉我。
答案 0 :(得分:0)
在我发布此消息时,确实有一个处理此问题的选项。 我使用数据库中的记录来锁定其他实例正在处理的作业的执行。
使用集中式缓存服务来存储存储键,该键存储的键的值可标识作业,并在作业执行开始时对其进行检查。
此解决方案的要求是您将需要像redis或memcache这样的集中式缓存服务。