当前位置: 首页 > 后端技术 > PHP

php定时任务

时间:2023-03-29 18:22:14 PHP

google百度,PHP任务大致可以分为三类最近需要定时请求数据,然后经过分析,指定相应的文本通过socket广播给用户。具体分析制定文本的业务并不复杂。使用curl请求数据。但是怎么用定时任务都不行。1、服务器定时任务WIN服务器可以直接使用定时任务执行相关应用程序,而LINUX服务器可以通过在/etc/crontab中添加定时任务来实现。php-f文件位置缺点:最少一分钟的任务计划。许多请求不到一分钟。需要保存上次的数据,下次取回。2、通过无限循环实现任务自动执行创建一个程序文件页面,设置ignore_user_abort在关闭浏览器页面后执行,那么程序页面运行后,你需要的任务计划会一直自动执行。对于普通的PHP程序员来说,这种操作如果没有把握是不允许的,因为无限循环很容易使服务器崩溃。设置时间限制(0);//取消超时//ignore_user_abort(true);//浏览器关闭并继续执行while(true){dongsomthing();睡觉(120);//计时120秒usleep()毫秒1000毫秒=1秒}die;sleep和usleep不是很准确缺点:长时间占用内存,经常无故停顿。3.通过workman等第三方框架。···count=1;$task->onWorkerStart=function($task){//每2.5秒执行一次,支持小数,可以精确到0.001,即精确到毫秒级别$time_interval=30;Timer::add($time_interval,function(){dosomthing()echo"taskrun\n";});};//运行workerWorker::runAll();?>···能精确到秒,不然会经常停顿!还有人说他可以半年不停地跑。我是不是开了很多任务,因为我有8个任务,每30秒请求一次。参考workman手册(https://www.kancloud.cn/walko...)使用方法很简单。配置php环境,然后直接执行命令行修改文件。php-f文件所在位置4.使用GatewayWorker搭建socket服务终端https://www.workerman.net/workerman-chat需要解析文本广播给各个client,那么如何调用socket将其推送给每个客户的方法?参考其他项目中的推送消息(https://www.kancloud.cn/walko...)如何存储到数据库中?参考https://www.kancloud.cn/walko...参考(https://www.kancloud.cn/walko...