You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 11生产环境(Azure App Services+Nginx+PHP8.3)同步事件重复触发问题排查求助

Laravel 11生产环境(Azure App Services+Nginx+PHP8.3)同步事件重复触发问题排查求助

各位好,我这边遇到一个挺头疼的问题:Laravel 11的同步事件在生产环境会重复触发,但本地开发环境完全正常,折腾了好一阵没找到根因,想请大家帮忙分析下可能的原因。

环境配置

  • Laravel版本:11.x
  • PHP版本:8.3
  • Web服务器:Nginx
  • 部署环境:Azure App Services,用了两个独立的App Service——一个跑主应用,一个单独跑定时任务(cron)

问题详情

我们触发事件的方式很常规:event(new ApplicationStatusChanged($application));
所有事件和监听器都是同步执行的——既没有给事件或监听器加ShouldQueue,也完全没用到队列。
但现在生产环境里,哪怕是一个单独的POST请求,对应的事件监听器都会执行2次;甚至直接发GET请求做测试,也会出现同样的情况。
我们已经把跑cron的那个App Service完全停掉了,问题还是存在,说明和定时任务完全没关系。

已经排除的可能性

我们已经把能想到的常规排查点都过了一遍,都可以排除:

  • 确认事件和监听器都没有实现ShouldQueue,全程同步,排除队列重试、任务重入的问题
  • 检查了监听器的逻辑,没有任何会再次触发该事件的操作
  • 排查了请求日志,确认没有重复请求打到接口上(确实是单次请求触发的问题)
  • 已经彻底清除了所有缓存:包括配置、路由、事件缓存等,甚至重启过应用服务
  • 排除了任务重试或者队列相关的问题(我们根本没用到队列,所以这部分可以完全排除)

想请教大家的问题

  • 会不会是Azure App Services的架构、部署副本或者Nginx配置导致的?比如有没有可能多实例或者反向代理的配置问题?
  • 为什么这种纯同步的事件会在这种生产架构下重复触发?有没有类似的已知坑点?
  • 针对Laravel 11/PHP 8.3的这种情况,有没有什么实用的调试技巧或者容易忽略的细节?比如事件注册的方式有没有什么变化?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 08:28:05