dmz社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9006|回复: 137

[php心得] php后台运行以及定时任务的4种实现原理以及代码

  [复制链接]

该用户从未签到

1

主题

1

帖子

6

积分

终身会员[A]

Rank: 7Rank: 7Rank: 7

积分
6

发表于 2018-12-9 22:46:06 | 显示全部楼层 |阅读模式

本站资源全部免费,回复即可查看下载地址!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
后台任务在我们php编程中虽然用的不是很多甚至很多php程序员都没听过甚至觉得后台运行是不可能实现的,本人因为项目需求多次演变在这里分享给大家,本人第一次想实现后台运行是利用 方法二 在其执行完成后输出一段Js代码让页面再次执行,然后在服务器中打开该页面!以下实现方式除了方法一我不推荐使用外其他我在项目中都使用过!

方法一、php自带函数实现后台运行(不推荐使用,不太稳定而且弊端很多)
set_time_limit  允许运行的最长时间,0表示不限制
sleep 运行后延时多久在运行后面的代码

当我什么使用set_time_limit函数后将代码写在一个无限循环里面即可!
[PHP] 纯文本查看 复制代码
set_time_limit(0);

while (true) {

	//php代码

	sleep(10);  //运行一次延时10秒后在执行下一次

}


方法二、写成网页浏览的形式打开即执行然后用http监控
HTTP监控本来是用来监控网站状态的,一次项目的时候无意将其做为了后台运行的方法;
HTTP监控会定期通过http协议(Get/Post)访问你要监控的页面,而每一次访问都会运行我们要执行的代码,如果运行时间比较长可以加入方法一的set_time_limit;

推荐2个Http监控网站:
1-阿里云监控(免费监控11个网站,多了收费,免费带短信提醒,个人推荐)
2-360云监控(http://jk.cloud.360.cn/Index/products) 不是很喜欢用360的产品

方法三、惰性运行
惰性也就是说每次网站运行都会运行那些被定义为后台任务的代码,Discuz开源系统就是用的这种方法,流量越大越任务越精准,我个人用此方法实现一般都是开发成一个全局插件来运行php任务脚本文件!

方法四、php Cli模式(推荐)
php Cli模式运行稳定超过70%的php程序员不知道此方法.本人一套php采集系统利于cli模式稳定运行半年,采集文章300+万;
当我们运行利于cli模式运行一个php文件之后会自动执行里面的代码,我们只需要将代码写成一个无限循环即可,不过最好在执行一次循环后加入sleep延时!

注意事项:
1、在无限循环中如果要载入文件必须用require_once或者include_once否则会出现重复函数或者类已经存在之类的错误!
2、如果在无限循环中想要后台操作退出循环可以创建一个文件,每次循环都先判断该文件是否存在,存在则运行代码,不存在则跳过代码,这样我们可以后台控制后台运行的启动与关闭!

定时任务部署以及代码明天接着写!


回复

使用道具 举报

该用户从未签到

35

主题

7882

帖子

1006

积分

终身会员[A]

Rank: 7Rank: 7Rank: 7

积分
1006

发表于 2018-12-10 20:42:26 | 显示全部楼层
看帖回帖是美德!:lol
回复 支持 反对

使用道具 举报

该用户从未签到

42

主题

7729

帖子

964

积分

终身会员[A]

Rank: 7Rank: 7Rank: 7

积分
964

发表于 2018-12-11 16:09:04 | 显示全部楼层
找到好贴不容易,我顶你了,谢了
回复 支持 反对

使用道具 举报

该用户从未签到

54

主题

7806

帖子

998

积分

终身会员[A]

Rank: 7Rank: 7Rank: 7

积分
998

发表于 2018-12-11 16:47:13 | 显示全部楼层
路过,支持一下啦
回复 支持 反对

使用道具 举报

该用户从未签到

17

主题

7958

帖子

986

积分

终身会员[A]

Rank: 7Rank: 7Rank: 7

积分
986

发表于 2018-12-12 11:52:21 | 显示全部楼层
有道理。。。
回复 支持 反对

使用道具 举报

该用户从未签到

17

主题

7958

帖子

986

积分

终身会员[A]

Rank: 7Rank: 7Rank: 7

积分
986

发表于 2018-12-13 01:12:59 | 显示全部楼层
不错不错,楼主您辛苦了。。。
回复 支持 反对

使用道具 举报

该用户从未签到

18

主题

7942

帖子

960

积分

荣誉会员

积分
960

发表于 2018-12-13 13:29:00 | 显示全部楼层
不知该说些什么。。。。。。就是谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

34

主题

7843

帖子

1025

积分

终身会员[A]

Rank: 7Rank: 7Rank: 7

积分
1025

发表于 2018-12-13 15:23:49 | 显示全部楼层
小手一抖,钱钱到手!
回复 支持 反对

使用道具 举报

该用户从未签到

5

主题

7567

帖子

1137

积分

技冠群雄

Rank: 6Rank: 6

积分
1137

发表于 2018-12-14 10:14:16 | 显示全部楼层
不错不错,楼主您辛苦了。。。
回复 支持 反对

使用道具 举报

该用户从未签到

26

主题

7770

帖子

1037

积分

终身会员[A]

Rank: 7Rank: 7Rank: 7

积分
1037

发表于 2018-12-14 13:25:06 | 显示全部楼层
学习了,不错,讲的太有道理了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|小黑屋|本站代理|dmz社区

GMT+8, 2024-12-24 00:06 , Processed in 0.276631 second(s), 40 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表