linkorb / commando
Commando: 从队列中执行命令
v1.14.0
2019-10-01 10:49 UTC
Requires
- andrewfenn/pid-helper: 0.1.0
- hipchat/hipchat-php: ^1.0
- linkorb/autotune: ^1.2
- maknz/slack: ^1.7
- nyholm/psr7: ^1.1
- psr/http-client: ^1.0
- symfony/console: ^2.7|^3.0|^4.0
- symfony/event-dispatcher: ^2.7|^3.0|^4.0
- symfony/http-client: ^4.3
- symfony/process: ^2.7|^3.0|^4.0
- symfony/yaml: ^2.7|^3.0|^4.0
- zordius/lightncandy: ~0.93
- dev-master
- v1.14.0
- 1.11.1
- 1.11.0
- 1.10.0
- v1.9.0
- v1.8.0
- v1.7.0
- v1.6.0
- v1.5.0
- v1.4.0
- v1.3.0
- v1.2.1
- v1.1.0
- v1.0.1
- v1.0.0
- dev-dependabot/npm_and_yarn/lodash-and-lodash-and-commitlint/cli-4.17.21
- dev-dependabot/composer/guzzlehttp/guzzle-6.5.8
- dev-dependabot/composer/guzzlehttp/psr7-1.8.5
- dev-dependabot/npm_and_yarn/shelljs-0.8.5
- dev-dependabot/npm_and_yarn/path-parse-1.0.7
This package is auto-updated.
Last update: 2024-08-25 08:53:36 UTC
README
Commando是一个通用的作业运行器。
您可以在Json或Yaml文件中定义自己的命令,并从不同的存储中处理作业,例如文件目录或数据库。
它的目标是使将后台作业实现到您的应用程序变得容易。
一个示例工作流程
- 您在
commando.yml
中定义一个名为"hello"的命令
commands: hello: template: echo "Hello {{ greeted }}" inputs: greeted: default: world
- 您的应用程序将一个作业写入
/your/commando-path/new
,文件名为1.json
{ "command": "hello", "inputs": { "greeted": "universe" } }
- 您(或cron)运行
commando run
。 - Commando将检查配置的存储中(在这种情况下是目录)的新作业文件,执行命令,用传递的作业参数替换模板中的参数,最终执行
echo "Hello universe"
- Commando将作业状态报告回存储,包括退出代码、开始/结束时间、总持续时间以及stdout和stderr
- 如果需要,您的应用程序根据状态报告向用户报告。
存储
JsonDirJobStore
:通过具有简单目录结构的json文件管理作业PdoJobStore
:通过数据库表管理作业CamundaJobStore
:Camunda外部任务客户端
用例
您可以用更复杂的命令行或shell脚本替换template
。
您的应用程序应将这些作业视为"fire-and-forget",这意味着应用程序不应阻塞,等待响应。它在触发命令且不需要立即了解响应的场景中最为理想。
示例
- 在后台更新PDF或报告
- 发送电子邮件和通知
- 创建数据库备份
- 处理上传的图像文件
- ...等等
常规提交
此存储库正在使用常规提交
请至少运行一次npm install
,以安装适当的工具和git钩子(这有助于您在提交之前通过linting来遵循约定)。
简而言之:您应在提交标题前加上正确的类型前缀(例如,feat: my new cool feature
)。这有助于创建清晰的提交历史记录,自动处理semver,标记以及CHANGELOG.md生成。
如果您想在我们的规划系统中引用一张卡片,只需在提交标题的末尾添加一个#123
。该卡片将正确地从变更日志等中链接。
要发布新版本,只需运行npm run publish
。这将更新变更日志,并将composer.json、package.json等清单更新到新标签。标签遵循Semver,并基于自上次发布以来的提交类型选择。
许可证
请参阅包含的LICENSE.md文件
由LinkORB工程技术团队提供
查看我们的其他项目engineering.linkorb.com。
顺便说一下,我们在招聘!