如何禁用Shopware管理后台notification worker
Shopware管理后台通知轮询Worker禁用方案
Shopware管理后台默认每5秒触发一次的通知拉取请求,在Xdebug调试场景下会持续堆积打断调试流程,可通过以下三种方式禁用该机制,无需修改核心代码:
- 全局配置调整(最推荐,操作成本最低)
针对Shopware 6.4及以上版本,可直接在项目根目录的.env环境配置文件中新增如下配置:
保存后执行SHOPWARE_ADMIN_NOTIFICATION_POLLING_INTERVAL=0bin/console cache:clear清除系统缓存,管理后台的通知轮询逻辑会直接停止。如果是更低版本,可登录管理后台进入「设置-系统-系统配置」,搜索「通知轮询间隔」配置项,将参数值修改为0后保存即可。 - 前端逻辑临时拦截(适合仅本地调试场景,不影响全局配置)
若不想修改全局配置,可通过自定义Admin扩展注入JS代码,在本地调试环境下手动停止轮询服务,Shopware前端服务容器原生提供了停止轮询的方法,不存在兼容性问题:// 仅在本地调试域名下生效,可自行替换匹配规则 if (location.hostname.includes('.local') || location.hostname.includes('.test')) { Shopware.Service('notificationsService').stopPolling() } - Web服务器层拦截(适合多本地项目统一配置)
可直接在本地开发环境的Nginx/Apache配置中添加规则,拦截通知轮询的固定接口路径,直接返回空响应,从请求入口阻断轮询:# Nginx规则示例 location /api/_action/notification/poll { default_type application/json; return 204 '{}'; }
注意:以上配置仅建议在本地开发调试环境使用,生产环境请保留默认轮询逻辑,避免后台任务告警、插件更新提醒、系统异常通知等功能失效。
内容的提问来源于stack exchange,提问作者newgennerd
相关产品推荐
相关产品推荐

