关于PHP定时发送服务的解决办法


Posted in PHP onApril 23, 2017

一、定时发送任务解析

在进行手机APP或者微信开发的时候,经常会有需要定时推送消息的场景。

定时发送又分为两种:

一种是在开发的时候固定时间,后台管理人员只能选择将要推送的消息;

另一种是后台管理人员可以自由选择推送的时间和消息;

二、解决方案

PHP本身是不支持定时发送的,因为PHP是一个脚本语言。在大多数情况下,浏览器关闭,PHP也就不执行了。大部分情况下都依赖于外部的一些小东西。

  1、固定时间

大多数服务器系统都是windows或linux。

linux:使用CronTab定时执行php

首先,进入命令行模式。作为服务器的linux一般都默认进入命令行模式的,当然,我们管理服务器也一般通过putty等工具远程连接到服务器,为了方便,我们用root用户登录。在命令行中键入:

 crontab -e

之后就会打开一个文件,并且是非编辑状态,则是vi的编辑界面,通过敲键盘上的i,进入编辑模式,就可以编辑内容。这个文件中的每一行就是一个定时任务,我们新建一行,就是新建一条定时任务(当然是指这一行内按照一定的格式进行书写)。我们现在来举个例子,增加一行,内容如下:

00 * * * * lynx -dump https://www.yourdomain.com/script.php

这是什么意思呢?实际上上面这一行由两部分组成,前面一部分是时间,后面一部分是操作内容。例如上面这个,

00 * * * *

就是指当当前时间的分钟数为00时,执行该定时任务。时间部分由5个时间参数组成,分别是:

分 时 日 月 周

第1列表示分钟1~59 每分钟用或者 */1表示,/n表示每n分钟,例如*/8就是每8分钟的意思,下面也是类推

第2列表示小时1~23(0表示0点)

第3列表示日期1~31

第4列表示月份1~12

第5列标识号星期0~6(0表示星期天)

整个句子的后面部分就是操作的具体内容。

lynx -dump https://www.yourdomain.com/script.php

意思就是说通过lynx访问这个url。我们在使用中主要用到lynx、curl、wget来实现对url的远程访问,而如果要提高效率,直接用php去执行本地php文件是最佳选择,例如:

00 */2 * * * /usr/local/bin/php /home/www/script.php

这条语句就可以在每2小时的0分钟,通过linux内部php环境执行script.php,注意,这里可不是通过url访问,通过服务器环境来执行哦,而是直接执行,因为绕过了服务器环境,所以效率当然要

高很多。

好了,已经添加了几条需要的定时任务了吧。点击键盘上的Esc键,输入“:wq”回车,这样就保存了设置的定时任务,屏幕上也能看到提示创建了新的定时任务。接下来就是好好写你的script.php

了。

windows:

windows上和linux上有一个类似的cmd和bat文件,bat文件类似于shell文件,执行这个bat文件,就相当于依次执行里面的命令(当然,还可以通过逻辑来实现编程),所以,我们可以利用bat命

令文件在windows服务器上面实现PHP定时任务。实际上在windows上定时任务,和linux上道理是一样的,只不过方法和途径不同。好了下面开始。

首先,在一个你觉得比较适当的位置创建一个cron.bat文件,然后用文本编辑器打开它(记事本都可以),在里面写上这样的内容:

D:\php\php.exe -q D:\website\test.php

这句话的意思就是,使用php.exe去执行test.php这个php文件,和上面的contab一样,绕过了服务器环境,执行效率也比较高。写好之后,点击保存,关闭编辑器。

接下来就是设置定时任务来运行cron.bat。依次打开:“开始?>控制面板?>任务计划?>添加任务计划”,在打开的界面中设置定时任务的时间、密码,通过选择,把cron.bat挂载进去。确定,这样

一个定时任务就建立好了,在这个定时任务上右键,运行,这个定时任务就开始执行了,到点时,就会运行cron.bat处理,cron.bat再去执行php。

2、自由选择时间

常用的博客系统wordpress有一个wp-corn文件来执行博客的定时发送,博主以wp-corn为原型编写了一个文件。

wp-corn是非常消耗服务器资源的一个策略。每个人访问博客的时候都会调用wp-corn文件(读取当前服务器时间,判断是否发送)。缺陷是在访问人数比较小的时候不能及时发送,人数过多又造成服务器性能降低。

博主做项目的时候公司提供的是一台windows服务器。采用的方法是在服务器上打开一个页面,每分钟自动刷新一次(简单的js脚本,不再提供代码)。

以上所述是小编给大家介绍的关于PHP定时发送服务的解决办法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
Oct 09 PHP
PHP入门
Oct 09 PHP
PHP ajax 分页类代码
Nov 13 PHP
基于PHP对XML的操作详解
Jun 07 PHP
php中通过数组进行高效随机抽取指定条记录的算法
Sep 09 PHP
php 无限级分类,超级简单的无限级分类,支持输出树状图
Jun 29 PHP
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
Oct 09 PHP
PHP+MySQL统计该库中每个表的记录数并按递减顺序排列的方法
Feb 15 PHP
thinkphp5 migrate数据库迁移工具
Feb 20 PHP
php删除一个路径下的所有文件夹和文件的方法
Feb 07 PHP
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
May 28 PHP
基于swoole实现多人聊天室
Jun 14 PHP
php读取和保存base64编码的图片内容
Apr 22 #PHP
PHP7多线程搭建教程
Apr 21 #PHP
mac系统下安装多个php并自由切换的方法详解
Apr 21 #PHP
php获取excel文件数据
Apr 21 #PHP
PHP实现限制IP访问的方法
Apr 20 #PHP
PHP简单读取xml文件的方法示例
Apr 20 #PHP
PHP编程获取音频文件时长的方法【基于getid3类】
Apr 20 #PHP
You might like
PHP导出EXCEL快速开发指南--PHPEXCEL的使用详解
2013/06/03 PHP
WordPress中Gravatar头像缓存到本地及相关优化的技巧
2015/12/19 PHP
Symfony2在Nginx下的配置方法图文教程
2016/02/04 PHP
php使用escapeshellarg时中文被过滤的解决方法
2016/07/10 PHP
jquery 插件开发备注
2010/08/27 Javascript
JS函数重载的解决方案
2014/05/13 Javascript
jquery实现的点击翻书效果代码
2015/11/04 Javascript
javascript计时器编写过程与实现方法
2016/02/29 Javascript
JavaScript简单实现弹出拖拽窗口(一)
2016/06/17 Javascript
node网页分段渲染详解
2016/09/05 Javascript
JavaScript数据结构之数组的表示方法示例
2017/04/12 Javascript
nodejs实现一个word文档解析器思路详解
2018/08/14 NodeJs
vue项目持久化存储数据的实现代码
2018/10/01 Javascript
js实现下拉框二级联动
2018/12/04 Javascript
vue2路由基本用法实例分析
2020/03/06 Javascript
[02:31]《DAC最前线》之选手酒店现场花絮
2015/01/30 DOTA
python利用beautifulSoup实现爬虫
2014/09/29 Python
Python 爬虫爬取指定博客的所有文章
2016/02/17 Python
python中matplotlib的颜色及线条控制的示例
2018/03/16 Python
python opencv检测目标颜色的实例讲解
2018/04/02 Python
使用实现XlsxWriter创建Excel文件并编辑
2018/05/04 Python
django反向解析和正向解析的方式
2018/06/05 Python
python获取地震信息 微信实时推送
2019/06/18 Python
利用python计算windows全盘文件md5值的脚本
2019/07/27 Python
关于阿里云oss获取sts凭证 app直传 python的实例
2019/08/20 Python
PyTorch中topk函数的用法详解
2020/01/02 Python
如何在Python 游戏中模拟引力
2020/03/27 Python
Keras在训练期间可视化训练误差和测试误差实例
2020/06/16 Python
CSS3实现滚动条动画效果代码分享
2016/08/03 HTML / CSS
如何使用html5与css3完成google涂鸦动画
2012/12/16 HTML / CSS
美国Lolё官网:购买大胆而美丽的女性运动服装
2017/05/22 全球购物
MAC Cosmetics巴西官方网站:M·A·C彩妆
2019/04/18 全球购物
护士自我鉴定范文
2013/10/06 职场文书
年终总结会主持词
2014/03/25 职场文书
餐厅筹备计划书
2014/04/25 职场文书
初中政治教学工作总结
2015/08/13 职场文书