PHP 常驻内存的多进程任务管理器 Composer 包。以进程管理为出发点,同时也支持为每个进程设置定时执行功能,您可以用它来完成需要重复运行的任务 (如订单超时自动取消, 短信邮件异步推送, 队列 / 消费者 / 频道订阅者等等),甚至处理计划任务。内置任务异常上报功能,异常错误您都可以自定义处理 (例如实现异常错误自动短信邮件通知);还支持任务异常退出自动重启功能,让您的任务运行更稳定,工具包同时支持 windows、linux、mac 环境运行。
项目地址 https://gitee.com/392223903/EasyTask
运行环境
windows:PHP>=5.4 (依赖 com_dotnet+wpc 扩展)
linux|mac:PHP>=5.4 (依赖 pcntl+posix 扩展)
Composer 安装
composer require easy-task/easy-task
快速入门 - 创建任务
// 初始化
$task = new Task();
// 设置非常驻内存
$task->setDaemon(false);
// 设置项目名称
$task->setPrefix('EasyTask');
// 设置记录运行时目录 (日志或缓存目录)
$task->setRunTimePath('./Application/Runtime/');
// 1. 添加闭包函数类型定时任务 (开启 2 个进程, 每隔 10 秒执行 1 次你写闭包方法中的代码)
$task->addFunc(function () {
$url = 'https://www.gaojiufeng.cn/?id=243';
@file_get_contents($url);
}, 'request', 10, 2);
// 2. 添加类的方法类型定时任务 (同时支持静态方法)(开启 1 个进程, 每隔 20 秒执行一次你设置的类的方法)
$task->addClass(Sms::class, 'send', 'sendsms', 20, 1);
// 3. 添加指令类型的定时任务 (开启 1 个进程, 每隔 10 秒执行 1 次)
$command = 'php /www/web/orderAutoCancel.php';
$task->addCommand($command,'orderCancel',10,1);
// 4. 添加闭包函数任务, 不需要定时器, 立即执行 (开启 1 个进程)
$task->addFunc(function () {while(true)
{//todo}
}, 'request', 0, 1);
// 启动任务
$task->start();
正文完
有偿技术支持加微信
发表至: 编码笔记
2023-02-16