croon / croon
PHP版本的Crontab
0.2.1
2014-08-03 16:09 UTC
Requires
- php: >=5.3.9
- pagon/argparser: *
- pagon/childprocess: 0.0.x
- pagon/eventemitter: *
- pagon/logger: *
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-23 11:15:58 UTC
README
Croon是一个PHP版本的CronTab实现
之前也做过一个类似的实现php-crontab,Croon与之不同的是:使用进程管理方式Fork工作进程;有友好的日志模块;加入事件驱动;更规范和稳定
功能:
- 兼容CronTab语法
- 精确到秒级控制
- PSR标准
- 支持事件绑定
- 支持日志
依赖
- PHP 5.3.9+
- ext-pcntl
- ext-posix
- Composer
库依赖(使用composer install
自动安装)
安装
下载使用:
Git
git clone git://github.com/hfcorriez/croon.git
cd croon
composer install
Composer
composer require croon/croon
使用
基本用法
croon.list
* * * * * * ls -l >> /tmp/ls.log
# 兼容系统crontab
* * * * * pwd >> /tmp/pwd.log
执行
./bin/croon croon.list -l croon.log
croon.log
[2013-04-20 14:07:01] 27a6c9 - debug - Croon...!!!
[2013-04-20 14:07:01] 27a6c9 - info - Execute (ls >> /tmp/ls.log)
[2013-04-20 14:07:01] 27a6c9 - info - Finish (ls >> /tmp/ls.log)[0]
以mysql数据库为计划任务源
- 修改数据库连接信息 bin/croon_with_mysql
- 表结构为
+---------------------+--------------------------------------------------------+
| time | command |
+---------------------+--------------------------------------------------------+
| [秒] 分 时 日 月 周 | command |
+---------------------+--------------------------------------------------------+
执行
./bin/croon_with_mysql -l croon.log
高级用法
bootstrap.php
<?php // 绑定启动事件 $croon->on('run', function() use($croon) { // 注入db $croon->db = new \PDO('mysql://localhost:3306;dbname=reports'); }); // 绑定执行事件 $croon->on('executed', function ($command, $output) use ($croon) { // 记录执行结果 $croon->db->exec(sprintf( 'INSERT INTO cron(command, status, stdout, stderr, create_time) VALUES ("%s", "%s", "%s", "%s", "%s")', $command, $output[0], $output[1], $output[2], date('Y-m-d H:i:s')) ); });
执行
./bin/croon croon.list -l croon.log -b bootstrap.php
许可证
(MIT许可证)
版权所有 (c) 2012 hfcorriez <hfcorriez@gmail.com>
特此授予任何获得本软件及其相关文档副本(以下简称“软件”)的人免费使用本软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向获得软件的人提供本软件以供其使用,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于对适销性、特定用途的适用性和非侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些责任是因合同、侵权或其他原因而产生的,也不论这些责任是否源于、因之或与此软件或其使用或其它交易有关。