PHPackages                             hehao/cron-manager - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. hehao/cron-manager

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

hehao/cron-manager
==================

V1.5.6(3y ago)034PHP

Since Apr 27Pushed 2y ago1 watchersCompare

[ Source](https://github.com/389123492/cron-manager)[ Packagist](https://packagist.org/packages/hehao/cron-manager)[ RSS](/packages/hehao-cron-manager/feed)WikiDiscussions main Synced 3w ago

READMEChangelogDependencies (1)Versions (6)Used By (0)

不再维护了 2020年终
============

[](#不再维护了-2020年终)

cronManager
===========

[](#cronmanager)

简介
==

[](#简介)

cronManager是一个纯PHP实现的定时任务管理工具,api简单清晰,采用的是多进程模型,进程通信采用的是消息队列,任务监控也提供了简单的命令,方便易用

特性
==

[](#特性)

- 多进程模型
- 支持守护进程
- 提供各种命令监控任务运行状态
- 兼容部分crontab语法
- 支持web可视化管理

更新日志
----

[](#更新日志)

1. 时间设定支持crontab格式,更加灵活(`2018年01月05日`)
2. [支持thinkphp5](https://gitee.com/jianglibin/cron-manager/tree/master/doc/thinkphp5)(`2018年1月6日`)
3. 优化底层架构,优化消息队列稳定性, 增加STOP命令
4. 增加了针对任务的命令,增加了web可视化页面操作案例demo(`2018年01月17日`)
5. 优化命令行下的提示风格,优化了一些问题(`2018年01月20日`)
6. `v1.4.3` 优化稳定性,修复一些bug(`2018年1月25日`)
7. `v1.5.0` 支持更完整的crontab格式命令,以前的\[分钟 小时 日期 月份\]升级为\[分钟 小时 日期 月份 星期\], `升级后需要修改有用到crontab格式的任务,否则会报错!`
8. `v1.5.1` 优化crontab格式解析类,修复闰月计算下次运行时间报错问题
9. `v1.5.2` 优化crontab格式解析类,修复星期解析错误的问题,解决解析全部为'\*'的情况下效率低下的问题

crontab格式解析说明
-------------

[](#crontab格式解析说明)

- crontab示例

```
* * * * * 每分钟执行一次
0 1,3,5 * * * 每凌晨1,3,5点整运行一次
0 0 * * 5 每周星期5,0点0分运行一次
0 0 1-13 * * 每月1的13号0点0分运行一次
0 0-5/2,10,12 * 2 5 获取二月份的星期五 时间为0,2,4,10,12运行一次

```

环境要求
----

[](#环境要求)

- `liunx`
- `pcntl扩展开启`
- `php 5.4以上`
- `composer`

安装
--

[](#安装)

- `composer`安装

> composer require hehao/cron-manager

可能遇到的问题,例如更新完版本
---------------

[](#可能遇到的问题例如更新完版本)

- `stop STOP restart -d`等命令无效..

```
# 提示成功
php tests/test.php stop

# 提示失败
php tests/test.php -d

Starting cron-manager:	[  NO  ]
	Faild: /tmp/cron-manager-3030e2bad011676a.pid already exist!

```

解决问题步骤:

1. 杀死可能残留的worker进程 命令: `killall -9 php`
2. 清除pid文件 命令: `rm /tmp/cron-manager-3030e2bad011676a.pid`

> 根据-d提示的文件名 Faild: `/tmp/cron-manager-3030e2bad011676a.pid` already exist!

使用介绍
----

[](#使用介绍)

核心方法 `CronManager::taskInterval($name, $command, $callable, $ticks = [])`

参数1 `string` $name 定时任务名称

参数2 `string` $command

`方式一`: 兼容部分crontab格式的语法, 粒度最小为`分钟`, 支持 `[分钟 小时 日期 月份 星期]`也就是 `* * * * *`

`方式二`:

使用key@value的形式表示, 不懂请看下面的`入门示例!!`

1. `s@n` 表示每n秒运行一次
2. `i@n` 表示每n分钟运行一次
3. `h@n` 表示每n小时运行一次
4. `at@nn:nn` 表示指定每天的nn:nn执行 例如每天凌晨 at@00:00

参数3 `callable` $callable 回调函数,也就是定时任务业务逻辑

参数4 `array` $ticks 用于单任务多进程时标识

快速入门示例
------

[](#快速入门示例)

```
