微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

澄清 Laravel 队列中的 afterCommit

如何解决澄清 Laravel 队列中的 afterCommit

当我收到请求时,我正在调度执行耗时任务的作业。例如当用户在网站上注册时向他们发送欢迎电子邮件

然而,请求会在事务中分派电子邮件作业,并且会出现竞争条件。作业可能会在事务提交之前执行,因此会因用户未找到错误而失败。我读过关于在调度作业时使用 afterCommitthe doc 说“Laravel 将等到所有打开的数据库事务都已提交,然后才实际调度作业”

这是否意味着如果有来自不同请求的多个事务打开,Laravel 将等待所有事务关闭,或者只是与可能生成作业的当前请求相关的事务?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。