Laravel 轻松实现定时任务

本人开源的EasyTask定时任务composer包支持windows linux mac,并且已经集成了全版本的laravel支持。文档也非常详细。laravel的整合后的文件也放到百度网盘了,可以自己整合参考。欢迎使用,给个star星星更好。composer一键安装。来个简单的例子。gitee源码地址:EasyTask定时任务包

$task = new Task();

// 设置常驻内存
$task->setDaemon(true)   

// 设置项目名称
->setPrefix('ThinkTask')   

// 设置系统时区
->setTimeZone('Asia/Shanghai')  

// 设置子进程挂掉自动重启
->setAutoRecover(true)  

// 设置PHP运行路径,一般Window系统才需要设置,当系统无法找到才需要您手动设置
->setPhpPath('C:/phpEnv/php/php-7.0/php.exe')

/**
 * 设置记录运行时目录(日志或缓存目录)
 * 不设置的话Linux默认/tmp/目录
 * 不设置的话Window默认C:\Windows\Temp目录
 */
->setRunTimePath('./Application/Runtime/')

/**
 * 关闭EasyTask的异常注册
 * EasyTask将不再监听set_error_handler/set_exception_handler/register_shutdown_function事件
 */
->setCloseErrorRegister(true)

/**
 * 设置接收运行中的错误或者异常(方式1)
 * 您可以自定义处理异常信息,例如将它们发送到您的邮件中,短信中,作为预警处理
 * (不推荐的写法,除非您的代码健壮)
 */
->setErrorRegisterNotify(function ($ex) {
    //获取错误信息|错误行|错误文件
    $message = $ex->getMessage();
    $file = $ex->getFile();
    $line = $ex->getLine();
})

/**
 * 设置接收运行中的错误或者异常的Http地址(方式2)
 * Easy_Task会POST通知这个url并传递以下参数:
 * errStr:错误信息
 * errFile:错误文件
 * errLine:错误行
 * 您的Url收到POST请求可以编写代码发送邮件或短信通知您
 * (推荐的写法)
 */
->setErrorRegisterNotify('https://www.gaojiufeng.cn/rev.php')

// 添加任务定时执行闭包函数
->addFunc(function () {
    echo 'Success3' . PHP_EOL;
}, 'fucn', 20, 1)   

// 添加任务定时执行类的方法
->addClass(Sms::class, 'send', 'sendsms1', 20, 1)   

// 添加任务定时执行命令
->addCommand('php /www/wwwroot/learn/curl.php','cmd',6,1)

// 启动任务
->start();
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4

自己支持下自己 哈哈。管理员可以帮忙推荐下吗

4年前 评论
堂堂糖唐

大概看了下可能不是很准确。 首先感觉和laravel本身的定时任务相比没有什么优势,因为框架自带的laravel是通过crontab调用无需考虑内存释放问题,逻辑简单明了。 你这个定时任务内存常驻还需要进程管理软件来保证进程稳定性吗,以及开发中的内存稳定性问题,还有变量污染问题怎么解决的?

4年前 评论
Learn (楼主) 4年前
Learn (楼主) 4年前
Complicated

请问下,常驻内存是怎么实现的?我们现在都是 artisan 命令写一个while循环,然后用supervisor监视!

4年前 评论
Learn (楼主) 4年前
Complicated

@堂堂糖唐 crontab好是好,但是 他只能到分钟啊,要实现秒级别的定时任务,他就不行了

4年前 评论
Learn (楼主) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!