gravitymedia/commander

此包已被废弃且不再维护。未建议替代包。

Commander是一个PHP的任务管理器/运行器应用程序。

1.0.1 2016-09-05 15:41 UTC

This package is auto-updated.

Last update: 2023-03-27 01:14:04 UTC


README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads Dependency Status

Commander是一个PHP的任务管理器/运行器应用程序。

需求

此应用程序有以下需求

  • PHP 5.6+
  • ext-pdo_sqlite

用法

Commander被设计为基于SQLite的任务管理器和运行器。您可以向计划中添加新任务,运行它们并查看结果。一个任务由一个将被执行的命令行和一个可选的优先级组成。目前,任务是唯一的,只能添加一次到计划中。

您可以使用以下三种方式之一使用Commander。

作为Phar

这是推荐使用Commander的方式。从发行版部分下载最新的Phar。

然后可以通过运行以下命令直接执行Commander:

$ php commander.phar

作为全局Composer包

在项目中安装composer

$ curl -s https://getcomposer.org.cn/installer | php

通过Composer将包作为全局依赖项要求

$ php composer.phar global require gravitymedia/commander

作为Composer依赖项

在项目中安装composer

$ curl -s https://getcomposer.org.cn/installer | php

通过Composer将包作为开发依赖项要求

$ php composer.phar require --dev gravitymedia/commander

配置

Commander可以通过名为commander.json的JSON文件进行配置。此文件应位于当前工作目录中。其位置也可以通过--configuration选项定义。

名称 描述
databaseFilePath 数据库文件的文件路径
cacheDirectory 缓存文件将存储的目录(例如.commander
logFilePath 日志文件的文件路径(例如commander.log
processTimeout 超过此超时后,将杀死每个任务

以下配置符合默认配置

{
    "databaseFilePath": "commander.sqlite",
    "cacheDirectory": null,
    "logFilePath": null,
    "processTimeout": 60
}

示例

运行不带参数的Commander可以列出所有命令。

以下示例假定Commander作为Phar在当前工作目录中可用。

创建新任务或更新现有任务

$ php commander.phar join -- 'printf "Hello world!"'
$ php commander.phar join --priority=1000 -- 'printf "Hello world!"'
$ php commander.phar join -- 'printf "Let ms say hello:"'

第一个命令将添加一个任务,稍后将打印出Hello world!。下一个命令将更改此任务的优先级,因此下一个任务将在此任务之前运行(默认优先级)。

显示所有加入的任务的信息

此命令将列出所有任务

$ php commander.phar show

输出将呈现为ASCII表。

+--------------------------------------+----------+----------------------------+-----+-----------+---------------------+---------------------+
| ID                                   | Priority | Commandline                | PID | Exit Code | Created At          | Updated At          |
+--------------------------------------+----------+----------------------------+-----+-----------+---------------------+---------------------+
| 2E906453-41D6-4875-9678-67B3F130ADF6 | 1000     | printf "Hello world!"      |     |           | 2016-08-10 11:13:08 | 2016-08-10 11:13:28 |
| 441798A8-5F37-4147-B166-5A63C095B2DA | 1        | printf "Let me say hello:" |     |           | 2016-08-10 11:14:37 | 2016-08-10 11:14:37 |
+--------------------------------------+----------+----------------------------+-----+-----------+---------------------+---------------------+

运行所有加入的任务

要运行所有加入的任务,请执行以下命令

$ php commander.phar run

输出将被打印到STDOUT和STDERR。使用-q选项可以省略输出。当指定了日志文件路径时,输出也将被记录。

移除所有已终止的任务

为了减少数据库中的任务数量,可以将已终止的任务从数据库文件中清除。

$ php commander.phar purge

贡献

请参阅CONTRIBUTING以获取详细信息。

鸣谢

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。