Dee*_*ary 5 php mysql cron symfony
我在Symfony中有一个应用程序,需要从该应用程序发送电子邮件/通知。由于电子邮件/通知发送过程需要时间,因此我决定将它们放入队列并定期处理队列。因此,我可以减少涉及电子邮件/通知调度的请求的响应时间。
用于处理队列的Cron Job(一个php脚本-Symfony路由)每30秒运行一次,并检查是否发现未发送的Email / Notifications是否从Queue Table获取所有数据并开始发送。发送电子邮件/通知后,“队列表”行状态标志将更新以显示已发送。
现在,当队列中有更多电子邮件时,可能需要30秒钟以上才能发送。另一个Cron作业也开始运行,并开始从队列发送电子邮件。因此导致重复发送电子邮件/通知。
我的电子邮件队列表结构如下:
|-------------------------------------|
| id | email | body | status | sentat |
|-------------------------------------|
Run Code Online (Sandbox Code Playgroud)
解决这个问题的想法如下:
所以我的问题是,是否有任何有效的方法来处理队列?是否有Symfony Bundle / Feature可以完成此类特定任务?
所以我的问题是,有没有有效的方法来处理队列?是否有任何 Symfony 捆绑包/功能可以完成此类特定任务?
您可以采取enqueue-bundle加上主义 dbal Transport。
它已经处理了竞争条件和其他问题。