关于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 相关文章推荐
用PHP实现的生成静态HTML速度快类库
Mar 31 PHP
php自定义函数之递归删除文件及目录
Aug 08 PHP
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
Dec 29 PHP
PHP中iconv函数转码时截断字符问题的解决方法
Jan 21 PHP
简单的pgsql pdo php操作类实现代码
Aug 25 PHP
简单谈谈 php 文件锁
Feb 19 PHP
PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
Jul 18 PHP
完美解决Thinkphp3.2中插入相同数据的问题
Aug 01 PHP
PHP ADODB生成下拉列表框功能示例
May 29 PHP
php app支付宝回调(异步通知)详解
Jul 25 PHP
PHP递归的三种常用方式
Feb 28 PHP
laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
Oct 08 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在不同页面间传递Json数据示例代码
2013/06/08 PHP
ThinkPHP实现ajax仿官网搜索功能实例
2014/12/02 PHP
浅谈php自定义错误日志
2015/02/13 PHP
详解thinkphp中的volist标签
2018/01/15 PHP
PHP实现微信红包金额拆分试玩的算法示例
2018/04/07 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
2020/03/16 PHP
jQuery表格排序组件-tablesorter使用示例
2014/05/26 Javascript
AngularJS入门教程之AngularJS模型
2016/04/18 Javascript
纯原生js实现table表格的增删
2017/01/05 Javascript
使用ionic在首页新闻中应用到的跑马灯效果的实现方法
2017/02/13 Javascript
JS闭包可被利用的常见场景小结
2017/04/09 Javascript
JS库之Three.js 简易入门教程(详解之一)
2017/09/13 Javascript
基于Bootstrap表单验证功能
2017/11/17 Javascript
详解适配器在JavaScript中的体现
2018/09/28 Javascript
[02:34]2016完美“圣”典风云人物:BurNIng专访
2016/12/10 DOTA
Python求两个文本文件以行为单位的交集、并集与差集的方法
2015/06/17 Python
简单谈谈Python中的反转字符串问题
2016/10/24 Python
使用python调用zxing库生成二维码图片详解
2017/01/10 Python
python+matplotlib演示电偶极子实例代码
2018/01/12 Python
python十进制和二进制的转换方法(含浮点数)
2018/07/07 Python
在IPython中进行Python程序执行时间的测量方法
2018/11/01 Python
配置 Pycharm 默认 Test runner 的图文教程
2018/11/30 Python
Python input函数使用实例解析
2019/11/22 Python
Python 矩阵转置的几种方法小结
2019/12/02 Python
python实现FTP文件传输的方法(服务器端和客户端)
2020/03/20 Python
Python3开发环境搭建详细教程
2020/06/18 Python
python脚本使用阿里云slb对恶意攻击进行封堵的实现
2021/02/04 Python
《美丽的田园》教学反思
2014/03/01 职场文书
继承公证书样本
2014/04/04 职场文书
2014班子成员自我剖析材料思想汇报
2014/10/01 职场文书
抄袭同学作业检讨书1000字
2014/11/20 职场文书
幼儿园托班教育随笔
2015/08/14 职场文书
Python图片处理之图片裁剪教程
2021/05/27 Python
Win11无法访问设备和打印机 如何解决页面空白
2022/04/09 数码科技
利用Python实现模拟登录知乎
2022/05/25 Python