hmazter / laravel-schedule-list
Laravel 包,用于添加命令以列出所有计划好的 artisan 命令
Requires
- php: ^7.2|^8.0
- dragonmantank/cron-expression: ^2.0|^3.0
- illuminate/console: 5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0
- illuminate/support: 5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0
Requires (Dev)
- orchestra/testbench: 6.*
- phpunit/phpunit: ^9.3
Conflicts
- illuminate/console: ^8.19
- illuminate/support: ^8.19
README
Laravel 5.6+ 包,用于添加 artisan 命令以列出所有计划好的 artisan 命令。包含计划时间(cron 表达式)、要执行的命令和命令描述。
安装
使用以下命令通过 composer 安装此包
composer require hmazter/laravel-schedule-list
注意! 对于 Laravel 版本 5.5 及以下,请使用 0.2.0 标签。
用法
从命令行显示所有计划好的 artisan 命令的用法
php artisan schedule:list
输出
+--------------+---------------------+--------------+-------------------------------+
| expression | next run at | command | description |
+--------------+---------------------+--------------+-------------------------------+
| 0 14 * * 3 * | 2017-08-16 14:00:00 | email:export | Export users to email service |
+--------------+---------------------+--------------+-------------------------------+
Crontab 样式输出
使用 --cron
以 crontab 文件中的相同样式显示输出。
输出
0 14 * * 3 * '/usr/local/bin/php' 'artisan' email:export > '/dev/null' 2>&1`
详细输出
使用 -vv
显示完整的命令,包括 php 二进制路径和输出路径。
输出
+--------------+---------------------+----------------------------------------------------------------+-------------------------------+
| expression | next run at | command | description |
+--------------+---------------------+----------------------------------------------------------------+-------------------------------+
| 0 14 * * 3 * | 2017-08-16 14:00:00 | '/usr/local/bin/php' 'artisan' email:export > '/dev/null' 2>&1 | Export users to email service |
+--------------+---------------------+----------------------------------------------------------------+-------------------------------+
使用 -vv
与 --cron
不会改变正常 --cron
输出的样式。
程序性使用
对于需要以编程方式访问计划事件列表的情况,存在 \Hmazter\LaravelScheduleList\ScheduleList::all
,它将返回所有计划事件作为 ScheduleEvent
的数组。
注入 ScheduleList
或从容器中解析它,然后调用 all()
以获取所有计划事件。可以在 ListScheduler::handle 中查看其用法。
定义 PHP 二进制路径
如果您使用自定义的 PHP 二进制路径,或者您在 Web 应用程序上下文中使用 \Hmazter\LaravelScheduleList\ScheduleList::all
,而不是通过控制台,则可以发布包的配置文件并定义自己的二进制路径
php artisan vendor:publish --provider="Hmazter\LaravelScheduleList\ScheduleListServiceProvider" --tag="config"
例如 config/schedule-list.php
<?php
return [
'remove_strings_from_command' => [
"'".PHP_BINARY."'",
"'artisan'",
],
];
已知限制
Laravel 随带一些特殊的调度函数,如 between
、unlessBetween
、when
和 skip
,目前这些在调度列表输出中未得到正确处理。它们在每次执行计划时都会被评估,并不定义任何可以包含在表中的表达式。