akki-io / cron-expression-generator
根据用户输入创建cron表达式
v1.0
2021-05-27 14:47 UTC
Requires
- php: ^7.4|^8.0
- illuminate/filesystem: ^8.42
- illuminate/translation: ^8.42
- illuminate/validation: ^8.42
- laravel/helpers: ^1.4
Requires (Dev)
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-08-27 22:18:43 UTC
README
定时任务表达式生成器
基于用户输入生成cron表达式。
安装
您可以通过composer安装此包
composer require akki-io/cron-expression-generator
简介
Cron表达式是一个字符串,表示特定命令的执行计划。Cron计划的部分如下
* * * * * - - - - - | | | | | | | | | | | | | | +----- day of week (0 - 6) (Sunday=0) | | | +---------- month (1 - 12) | | +--------------- day of month (1 - 31) | +-------------------- hour (0 - 23) +------------------------- min (0 - 59)
此包支持每个计划的不同选项。
用法
您可以根据上面概述的不同选项设置下面的 $options
数组。
use AkkiIo\CronExpressionGenerator\CronExpressionGenerator; $options = []; $cronExpression = (new CronExpressionGenerator($options))->generate();
示例
生成每分钟的cron表达式
$options = []; $cronExpression = (new CronExpressionGenerator($options))->generate(); // * * * * *
生成每小时的cron表达式
$options = [ 'minute' => [ 'type' => 'ONCE', 'at' => 0, ], 'hour' => [ 'type' => 'EVERY', 'every' => 1, ], ]; $cronExpression = (new CronExpressionGenerator($options))->generate(); // 0 */1 * * *
生成每天上午10:15的cron表达式
$options = [ 'minute' => [ 'type' => 'ONCE', 'at' => 15, ], 'hour' => [ 'type' => 'ONCE', 'at' => 10, ], ]; $cronExpression = (new CronExpressionGenerator($options))->generate(); // 15 10 * * *
生成每周工作日上午10:15的cron表达式
$options = [ 'minute' => [ 'type' => 'ONCE', 'at' => 15, ], 'hour' => [ 'type' => 'ONCE', 'at' => 10, ], 'day_week' => [ 'type' => 'RANGE', 'start' => 1, 'end' => 5, ], ]; $cronExpression = (new CronExpressionGenerator($options))->generate(); // 15 10 * * 1-5
生成每月22日的上午10:15的cron表达式
$options = [ 'minute' => [ 'type' => 'ONCE', 'at' => 15, ], 'hour' => [ 'type' => 'ONCE', 'at' => 10, ], 'day_month' => [ 'type' => 'ONCE', 'at' => 22, ], ]; $cronExpression = (new CronExpressionGenerator($options))->generate(); // 15 10 22 * *
生成每周日的上午10:15的cron表达式
$options = [ 'minute' => [ 'type' => 'ONCE', 'at' => 15, ], 'hour' => [ 'type' => 'ONCE', 'at' => 10, ], 'day_week' => [ 'type' => 'ONCE', 'at' => 0, ], ]; $cronExpression = (new CronExpressionGenerator($options))->generate(); // 15 10 * * 0
生成每年的10月22日上午10:15的cron表达式
$options = [ 'minute' => [ 'type' => 'ONCE', 'at' => 15 ], 'hour' => [ 'type' => 'ONCE', 'at' => 10, ], 'day_month' => [ 'type' => 'ONCE', 'at' => 22, ], 'month' => [ 'type' => 'ONCE', 'at' => 10, ], ]; $cronExpression = (new CronExpressionGenerator($options))->generate(); // 15 10 22 10 *
测试
composer test
贡献
请参阅CONTRIBUTING以获取详细信息。
安全
如果您发现任何安全问题,请通过电子邮件hello@akki.io而不是使用问题跟踪器。
鸣谢
许可
MIT许可证(MIT)。有关更多信息,请参阅许可文件。