#5448·webiny-js

自主托管的事件处理程序:统一并加强内部自定义回调 URL(端口)

作者: adrians5j创建于 2026年7月21日更新于 2026年7月21日

跟进 PR #5414。调度程序和后台任务事件处理程序都 POST 到同一台服务器上的内部路由(自回调)。两者都根据需要构建了基础 URL:- packages/api-event-handler-server/src/scheduler/schedulerServer.tsconst serverBase = () => \http://localhost:${process.env.PORT || "3002"}`;- packages/background-tasks-server/src/service/WorkerTaskService.tsconst port = process.env.PORT || DEFAULT_SERVER_PORT;`(DEFAULT_SERVER_PORT = 3000

问题

  1. 不一致的硬编码回退 - 调度程序为 3002,后台任务为 3000,对应同一个概念。
  2. 回退掩盖了失败 - runApiServer 总是将解析的端口作为 process.env.PORT 注入(它在启动之前合并了 WEBINY_API_PORT → PORT → findFreePort(3002)),因此 || 回退实际上已经失效。如果它曾经触发过,那么对猜测端口的静默 POST 将会安静失败。优先选择大声失败(抛出/日志)而不是猜测。
  3. 重复 - "返回自身的 URL" 逻辑在两个处理程序中被复制粘贴。

内容来源: webiny/webiny-js