关于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


相关推荐: 网站制作报价单模板图片,小松挖机官方网站报价?  Linux系统运维自动化项目教程_Ansible批量管理实战  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  如何在云指建站中生成FTP站点?  怎么用AI帮你为初创公司进行市场定位分析?  Laravel API资源类怎么用_Laravel API Resource数据转换  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  海南网站制作公司有哪些,海口网是哪家的?  微信小程序 canvas开发实例及注意事项  Laravel如何实现API版本控制_Laravel版本化API设计方案  香港服务器如何优化才能显著提升网站加载速度?  用yum安装MySQLdb模块的步骤方法  Laravel观察者模式如何使用_Laravel Model Observer配置  iOS正则表达式验证手机号、邮箱、身份证号等  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工  高端网站建设与定制开发一站式解决方案 中企动力  Laravel如何使用Gate和Policy进行授权?(权限控制)  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  教你用AI将一段旋律扩展成一首完整的曲子  Python函数文档自动校验_规范解析【教程】  nginx修改上传文件大小限制的方法  js代码实现下拉菜单【推荐】  制作旅游网站html,怎样注册旅游网站?  如何在阿里云ECS服务器部署织梦CMS网站?  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  如何快速生成专业多端适配建站电话?  Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践  如何快速重置建站主机并恢复默认配置?  JavaScript Ajax实现异步通信  郑州企业网站制作公司,郑州招聘网站有哪些?  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  如何在宝塔面板中创建新站点?  Angular 表单中正确绑定输入值以确保提交与验证正常工作  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  原生JS获取元素集合的子元素宽度实例  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  如何彻底卸载建站之星软件?  用v-html解决Vue.js渲染中html标签不被解析的问题  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  高性价比服务器租赁——企业级配置与24小时运维服务  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  大连网站制作公司哪家好一点,大连买房网站哪个好?