PHP的实现决定了它没有Java和.Net这种AppServer的概念, 而http协议是一个无状态的协议, php只能被用户触发, 被调用, 调用后会自动退出内存, 没有常驻内存, 就没有办法准确的定时处理那么, 如果需要用PHP定时执行某些任务的话, 可以有以下俩个方法:
Linux下crontab, windows下计划任务找个被频繁调用的网页, 里面加上一个检测代码set_time_limit(0);ignore_user_abort(true);死循环第一个方法是最常见的, 如果php服务器上没有权限去crontab, 也可以找一个自己的机器定期crontab去请求服务器第二种方法, 论坛上定时清理新帖基本上就是这么实现的, 如果人气不旺的话, 可以考虑去别的火爆点的论坛里面发个图片, 调用自己的php来实现一个trigger就好了。 Discuz!是判断在00:00之后,第一个执行者去执行的。第三种比较不靠谱, Apache重启了就得重新访问,  fastcgi倒是会好一点。
下面的这段代码,并每隔15秒,访问10次 ,无论客户端是否关闭浏览器。

ignore_user_abort(true);
set_time_limit(0);function read(){//循环访问次数$count = 15;for ($i = 1; $i < $count + 1; $i++) {$v = 'http://weibo.com/ttarticle/p/show?id=2309404102971079157578#_0';$curl = curl_init($v);curl_setopt($curl, CURLOPT_HTTPHEADER, array('Client_Ip: ' . mt_rand(0, 255) . '.' . mt_rand(0, 255) . '.' . mt_rand(0, 255) . '.' . mt_rand(0, 255),));$str = curl_exec($curl);curl_close($curl);echo "loop time: $i" . PHP_EOL;}}function cron(){//15秒usleep(15000000);read();}//死循环 无限执行.while(1){cron();}

ignore_user_abort(true),这个函数的作用是,无论客户端是否关闭浏览器,下面的代码都将得到执行。
set_time_limit(0),这个函数的作用是,取消php文件的执行时间,如果没有这个函数的话,默认php的执行时间是30秒,也就是说30秒后,这个文件就say goodbay了。
另外usleep在PHP5.0之后,支持windows操作系统。

我们在做一个php 邮件发送问题是常常会遇见这样的问题,就是用户订阅一些资料需要定时发送到用户的邮箱中去。去网上搜索了一下,发现在这样的文章不多,本文介绍了一种用PHP实现的方法,笔者用PHP的时间不长,欢迎大家PP。
        一、要实现定时发送,主要解决问题是定时。
       我们在写程序时需要加个什么if 某个时间=某个时间则发送,可是要实现这个过程,面临的问题是,我们要执行这个页面才能发送。所以主要解决的问题是怎么到时让服务器定时执行这个页面,这样实现起来好像比较困难。
       二、我翻开PHP手册,找到了PHP 的命令行模式这一章,发现能解决这一问题,建议大家如果想用这个方法的话先看看这一章。
       三、解决方法:
        1、在 Windows 平台下您可以将cli\php.exe 和 .php 文件的双击属性相关联,您也可以编写一个批处理文件来用 PHP 执行脚本。我们把写好的程序放在一个目录下如 E:\web\mail.php

然后写一个windows批处理文件内容如下。

D:\php\cli\php.exe E:\web\mail.php >d:\php\cli\sendmail.log
Pause
那个D:\php\cli\php.exe是我的PHP安装文件所在目录。Php.exe就是windows PHP命令行模式的程序。
好的,我们保存这个文件为mail.bat然后的windows中的计划任务中添加一个任务,让操作系统在某个时间来运行这个批处理文件。

php 执行定时任务.相关推荐

  1. (shell脚本编程)linux如何利用脚本执行多条命令以及linux如何执行定时任务

    文章目录 shell脚本编程 条件语句 脚本执行多条命令 执行定时任务 本文着重于提高我们的生产力,所以将这几个作为了一个专题. shell脚本编程 脚本中不同语句用分号隔开,和c语言一样. for, ...

  2. spring框架使用Quartz执行定时任务实例详解

    版权声明:本文为博主原创文章,如需转载,请标明出处. https://blog.csdn.net/alan_liuyue/article/details/80382324 Quartz简介 1.Qua ...

  3. cron 每年执行一次_循环执行定时任务crontab

    一.前言 小编最近在将线上服务器实时的请求都转到测试机,但是由于请求量太多导致log不久就写满磁盘了,手动清理费事费力,因此考虑到自动清理,接触到corntab定时任务.分享给各位. 二.crond介 ...

  4. quart动态执行定时任务

    今天有个需求,前端可以将定时任务自定义保存到数据库,每天根据查询数据库来执行任务. 其实不用动态也是可以实现,但是.也是想试试动态执行定时任务看看怎么样的. (1)建立一个QuartzManage类 ...

  5. spring使用注解@Scheduled执行定时任务

    =最近做的项目中遇到了用spring中@Schedule注解执行定时任务的功能,这里简单记录一下. 首先在applicationContext.xml中进行配置: xmlns 加下面的内容 xsi:s ...

  6. SpringMVC框架使用注解执行定时任务

    2019独角兽企业重金招聘Python工程师标准>>> 在项目开发过程中,免不了会有一些定时任务.今天就给大家一个SpringMVC框架中利用注解的方式执行定时任务的示例代码 使用到 ...

  7. quartz实现每周一至周五 非法定节假日 每天9:30-11:30,13:00-15:00执行定时任务

    我的定时任务需求是:使用quartz实现每周一至周五,非法定节假日,每天9:30-11:30,13:00-15:00执行定时任务. 经过学习quartz,发现使用SimperTrigger和CronT ...

  8. 批量执行定时任务_执行批量维护任务安全策略

    批量执行定时任务 介绍 (Introduction) You may see it more commonly referenced as Database Instance File Initial ...

  9. Windows Server执行定时任务

    Windows Server执行定时任务 找到"控制面板",打开"管理工具". 点击"任务计划程序". 点击"任务计划程序库&qu ...

  10. Android service后台执行定时任务

    Android 的定时任务 1,Java的API提供的Timer类 Android 中使用容易受手机的休眠系统影响(例如:手机休眠,导致了这个功能的停止). 2,Android的Alarm机制 Ala ...

最新文章

  1. (转)Unity中武器与人物的碰撞检测
  2. Python+Dash快速web应用开发——基础概念篇
  3. 《CCNP TSHOOT 300-135认证考试指南》——5.10节定义关键术语
  4. Swift语言快速入门
  5. leetcode 718. Maximum Length of Repeated Subarray | 718. 最长重复子数组(动态规划)
  6. 问题:org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0
  7. 按钮 每一行_word跨页表格如何重复设置表头?单击“重复标题行”按钮来设置多页表格重复标题行显示。...
  8. 打勾显示输入的密码 --EditText与setTransformationMethod
  9. mysqlbinlog工具_mysqlbinlog命令详解 Part 1-实验环境准备
  10. java运行异常日志_使用log4j记录Java中的运行时异常
  11. MyBatis学习总结(12)——Mybatis+Mysql分页查询
  12. WAMP的多站点配置
  13. POJ 2503-Babelfish(map)
  14. 互联网人:最熟悉的陌生人
  15. LTE-PCC SCC
  16. 微信公众号-服务器配置(token验证)
  17. Unity 中的基础光照
  18. 如此正经,日本首部让人流泪的VR电影诞生
  19. “左眼跳财,右眼跳灾”
  20. SQLyog设置唯一

热门文章

  1. 逻辑英语公式R1+R2
  2. 第一、二章大数据与Hadoop的概述
  3. 百度地图 web 开发 BMap.point格式
  4. 透明位图Ron Gery Microsoft 网络开发技术小组
  5. Dell Inspiron15-7567 拆机插放内存条步骤
  6. React 报错 Too many re-renders. React limits the number of renders to prevent an infini
  7. 百家号不推荐的文章如何解决呢?
  8. 读《富爸爸,穷爸爸》后感(三)
  9. JAVA实现手机短信验证码在指定有效的时间里校验
  10. 线路负载及故障检测装置(2019全国大学生电子设计大赛C题:国家级一等奖)