SuperAPI AI 工具集

bitrix-background-jobs

部署与运维

查看项目

更新于 10-15 17:30

技能介绍

用途:在 Bitrix 中处理延迟任务、周期性任务和异步工作。基线要求 main 23.0+,已在 main 26.800.0 验证。

主要能力(按任务分文档):周期性或延迟任务、基于 cron 的代理与长时代理见 rules/agents.md;响应后的短程收尾工作见 rules/background-job.md;队列的消息、接收器、派发与重试见 rules/messenger.md;队列配置、broker、messenger:consume、内核队列见 rules/messenger-config.md。

选型建议:需按计划调度则用 agent(配合 cron);响应后仅需数秒的工作用 addBackgroundJob;需要重试、较大吞吐或并行 worker 则用 Messenger(自 main 25.100.300 起为 alpha);一次性长时间迁移用控制台命令(bitrix-console-commands)。

不变量与用法要点:后台代码没有用户上下文,agent 与接收器会把全局 $USER 置为 null,且无 $_SESSION/cookie,须显式传入用户与站点 ID。在命中场景中,agent、Web 模式 Messenger 与 addBackgroundJob() 在响应发送之后、OnAfterEpilog 与 session_write_close() 之后执行,数据库连接池强制走 master。任务代码应保持精简:通过 ServiceLocator::getInstance()->get() 解析服务并调用(agent 中不做构造函数依赖注入,见 bitrix-framework)。任务必须幂等,因为 agent 可能并行运行两次,消息可能被重复投递。失败应通过 PSR-3 日志记录(bitrix-logger),并在模块卸载时移除自己注册的 agent。