ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
1.安装Composer包: ~~~ composer require easy-task/easy-task ~~~ 执行上面的命令如果提示git is not recognized,说明你没有安装git,附上阿里巴巴的git镜像下载地址: [[http://npm.taobao.org/mirrors/git-for-windows/](http://npm.taobao.org/mirrors/git-for-windows/)](阿里巴巴git) 2.安装完成引入: ~~~ require './vendor/autoload.php'; //初始化 $task = new EasyTask\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秒执行1次) $task->addClass(Sms::class, 'send', 'sendsms', 20, 1); // 3.添加指令类型的定时任务(开启1个进程,每隔10秒执行1次) $command = 'php /www/web/orderAutoCancel.php'; $task->addCommand($command,'orderCancel',10,1); // 启动任务 $task->start(); ~~~ 3.代码解析 ~~~ (3.1).setDaemon(false) 设置非后台运行,在windows下会启动php进程执行代码,你会看到几个黑色窗口在执行代码,在linux下会在当前终端执行代码。 (3.2).setDaemon(true) 设置后台运行,在windows下让进程在后台运行你看不到执行界面,在linux会常驻在内存中就算你关闭命令行窗口依然在执行。 (3.3).setPrefix('项目名称') 为当前的项目设置一个别名,推荐为英文,主要目的是为了方便区分项目,可以自定义。 (3.4).setRunTimePath('运行缓存或日志路径') 设置一个EasyTask运行日志和缓存文件保存的目录。 (3.5).addFunc(闭包函数,任务名称,执行间隔时间,启动进程数) 添加一个任务,每间隔多少秒执行下您设置的闭包函数中的代码。例如上面中在闭包函数设置请求一个url,每隔10秒执行一次闭包函数,并且开启了2个进程,那么10秒后闭包函数被执行2次 (3.6).addClass('类名称','类的方法','任务名称',执行间隔时间,启动进程数) 添加一个任务,每间隔多少秒执行下您设置的类的某个方法。例如上面的例子中每隔20秒就会执行您设置的Sms类的send方法 (3.7).addCommand('cmd/shell命令',任务名称,执行间隔时间,启动进程数) 添加一个任务,每间隔多少秒执行下您设置cmd命令或者shell命令,例如上面的例子中每隔10秒执行1次“php /www/web/orderAutoCancel.php”命令 (3.8).start() 启动添加的所有任务,启动后window下任务管理器即可看到对应的进程信息,切换详情信息即可看到启动的进程id,linux下可以使用ps aux|项目名称查看已经启动的进程id;如果是windows下同步模式启动,可以直接关闭所有cmd窗口即可关闭所有任务,如果是linux同步模式启动,直接按ctrl+c即可关闭所有任务 ~~~