现象:同一节点多次调用 Python,间隔较规律;或日志出现“同步调用python超时”“脚本执行超时,节点异常,请更改调用方式”。
对照流程实例 ID、节点和 Python 作业的开始时间。不同流程实例分别调用同一个 Python,不属于同一节点重试,应先检查重复发起或定时启动配置。
同一实例重复调用时,检查节点调用方式、实际耗时、作业错误及重试记录;同时确认流程是否配置了循环或再次进入该节点的路径。
同步调用耗时较长时,结合工作流和 Python 两侧日志检查调用超时、数据库事务中断及作业锁超时,不能仅凭“约每 5 分钟一次”确定原因。
耗时较长或不稳定的 Python,优先评估改为异步调用。后续步骤依赖脚本结果时,还要配置“异步调用 + 等待消息”,由脚本完成后发送消息并回传所需参数。只切换成异步,并不能保证多个脚本按完成顺序执行。 配置方法见 异步调用与消息配合的最佳实践。
重试前先核对上次脚本的实际状态和业务写入结果。工作流停止等待,不代表 Python 已停止;对写入、扣减、通知等操作,应按业务主键避免重复处理。
当前实现中的同步等待窗口为“工作流作业锁时长减去 15 秒”。作业锁配置 JOB_EXECUTION_LOCK_TIME_IN_MILLIS 的默认值为 300000 毫秒,对应等待窗口约 4 分 45 秒。这是当前代码默认配置下的等待窗口,不是所有部署环境的固定超时,也不是脚本的强制停止时间。
实际中还可能更早触发数据库或服务调用超时。请由管理员核对部署版本和生效配置,不要直接把历史文档中的“5 分钟”当作统一结论。
回到顶部
咨询热线
