关于 bitrix-background-jobs
bitrix-background-jobs 是用于在 Bitrix 中实现后台任务的参考技能。它帮助开发者在定时 Agent、响应后任务、Messenger 队列和命令行命令之间选择,并说明执行上下文与可靠性要求。
主要功能
- 01后台任务机制选择指引
- 02定时及延迟 Agent 指引
- 03响应后任务指引
- 04Messenger 队列与重试指引
- 05幂等性和执行上下文规则
适用场景
- 01安排周期或延迟任务
- 02在响应后执行短时工作
- 03通过队列和重试处理消息
- 04规划一次性长时间迁移
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ bxmaximum/ bitrix-framework-skills --skill bitrix-background-jobs安装后在 Claude Code 中输入/bitrix-background-jobs确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
rules/agents.mdbackground-job.mdmessenger-config.mdmessenger.md详细介绍
后台任务
基线:main 23.0+ · 已验证:main 26.800.0
| 任务 | 参考 |
|---|---|
| 定期或延迟任务、按 cron 运行的 Agent、长时间运行的 Agent | rules/agents.md |
| 响应后执行的短时收尾工作 | rules/background-job.md |
| 队列:消息、接收器、分发、重试 | rules/messenger.md |
队列配置、代理、messenger:consume、内核队列 | rules/messenger-config.md |
选择方式:定时任务 → Agent(按 cron 运行);响应后执行数秒的工作 → addBackgroundJob;需要重试、处理大量任务或并行工作线程 → Messenger(自 main 25.100.300 起,alpha);一次性长时间迁移 → 控制台命令(bitrix-console-commands)。
不变原则
- 后台代码没有用户上下文:Agent 和接收器会设置
global $USER = null;不得使用$_SESSION/cookies。请显式传递用户/站点 ID。 - 在请求中,Agent、
web模式的 Messenger 和addBackgroundJob()都会在响应发送后、OnAfterEpilog和session_write_close()执行后运行,并强制数据库连接池使用主库。 - 保持任务代码精简:通过
ServiceLocator::getInstance()->get()获取服务并调用它(Agent 中不使用构造函数 DI——参见bitrix-framework)。 - 任务必须幂等:Agent 可能并行运行两次,消息可能会被重新投递。
- 使用 PSR-3 日志记录器记录失败(
bitrix-logger);模块卸载时移除对应的 Agent。
评论
支持 Markdown