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

发布时间 - 2026-01-11 00:47:23    点击率:

一、定时发送任务解析

  在进行手机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  # 定时发送  # 使用PHP免费发送定时短信的实例  # Linux服务器下PHPMailer发送邮件失败的问题解决  # php mailer类调用远程SMTP服务器发送邮件实现方法  # jQuery通过Ajax向PHP服务端发送请求并返回JSON数据  # phpmailer在服务器上不能正常发送邮件的解决办法  # php输入流php://input使用示例(php发送图片流到服务器)  # 是在  # 好了  # 就会  # 命令行  # 来实现  # 编辑器  # 每分钟  # 小编  # 这一行  # 就可以  # 博客  # 自由选择  # 的是  # 都是  # 是一个  # 这是  # 会有  # 在这个  # 还可以  # 在此 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  如何在阿里云购买域名并搭建网站?  Laravel如何使用模型观察者?(Observer代码示例)  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  如何快速搭建FTP站点实现文件共享?  Python进程池调度策略_任务分发说明【指导】  微信小程序 五星评分(包括半颗星评分)实例代码  高防服务器租用首荐平台,企业级优惠套餐快速部署  网站制作大概多少钱一个,做一个平台网站大概多少钱?  php打包exe后无法访问网络共享_共享权限设置方法【教程】  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  javascript基于原型链的继承及call和apply函数用法分析  如何在搬瓦工VPS快速搭建网站?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  教你用AI将一段旋律扩展成一首完整的曲子  微信推文制作网站有哪些,怎么做微信推文,急?  Android Socket接口实现即时通讯实例代码  如何在Windows虚拟主机上快速搭建网站?  jQuery 常见小例汇总  实例解析Array和String方法  网站建设保证美观性,需要考虑的几点问题!  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  Laravel用户密码怎么加密_Laravel Hash门面使用教程  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  个人摄影网站制作流程,摄影爱好者都去什么网站?  西安专业网站制作公司有哪些,陕西省建行官方网站?  linux写shell需要注意的问题(必看)  如何快速搭建个人网站并优化SEO?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程  iOS UIView常见属性方法小结  浅述节点的创建及常见功能的实现  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  php静态变量怎么调试_php静态变量作用域调试技巧【解答】  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  javascript中数组(Array)对象和字符串(String)对象的常用方法总结  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  Laravel如何创建自定义中间件?(Middleware代码示例)  如何快速生成凡客建站的专业级图册?  *服务器网站为何频现安全漏洞?  三星网站视频制作教程下载,三星w23网页如何全屏?  简单实现jsp分页  使用C语言编写圣诞表白程序  如何在 React 中条件性地遍历数组并渲染元素  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】