mcpField
B
bitrix-background-jobs

bitrix-background-jobs

github.com/bxmaximum开发47271 次安装2 周前更新
代码仓库

关于 bitrix-background-jobs

bitrix-background-jobs 是用于在 Bitrix 中实现后台任务的参考技能。它帮助开发者在定时 Agent、响应后任务、Messenger 队列和命令行命令之间选择,并说明执行上下文与可靠性要求。

主要功能

  1. 01后台任务机制选择指引
  2. 02定时及延迟 Agent 指引
  3. 03响应后任务指引
  4. 04Messenger 队列与重试指引
  5. 05幂等性和执行上下文规则

适用场景

  1. 01安排周期或延迟任务
  2. 02在响应后执行短时工作
  3. 03通过队列和重试处理消息
  4. 04规划一次性长时间迁移

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/bxmaximum/bitrix-framework-skills --skill bitrix-background-jobs

安装后在 Claude Code 中输入/bitrix-background-jobs确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

rules/
agents.md
background-job.md
messenger-config.md
messenger.md

详细介绍

后台任务

基线:main 23.0+ · 已验证:main 26.800.0

任务参考
定期或延迟任务、按 cron 运行的 Agent、长时间运行的 Agentrules/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