当前位置: 首页 > 技术支持 > 服务器维护>> php定时执行任务怎么写?(...某个PHP脚本文件,带参数,没有服务器权限,虚拟主机用户 - 技术问答...)

php定时执行任务怎么写?(...某个PHP脚本文件,带参数,没有服务器权限,虚拟主机用户 - 技术问答...)

定时任务最好的方法是用linux系统的加护任务来写,你是虚拟主机那无法用这个法子,你可以写前台访问触发的法子,把代码写到页面。

大家好,今天小编关注到一个比较有意思的话题,就是关于虚拟主机php定时任务的问题,于是小编就整理了5个相关介绍虚拟主机php定时任务的解答,让我们一起看看吧。

php定时执行任务怎么写?(...某个PHP脚本文件,带参数,没有服务器权限,虚拟主机用户 - 技术问答...)

文章目录:

  1. php定时执行任务怎么写?
  2. ...某个PHP脚本文件,带参数,没有服务器权限,虚拟主机用户 - 技术问答...
  3. PHP实现定时任务的几种方法
  4. 请问如何用PHP语言让系统定时执行一个任务?
  5. php定时执行任务的几个方法

一、php定时执行任务怎么写?

一早升般都是用linux设置定时任务的crontab指令

1.查看定时任务是否开陆手老启 service crond status

2.开启关闭 service crond start / stop

3.crontab -e 设薯链置定时任务 例:crontab -e */30 * * * * /usr/bin/php /usr/share/nginx/html/demo.php

借助linux的crontab

# crontab -e

添加燃慧

00 * * * * /home/xxx/test.php(指定路径)

从左到右依次为 [分钟] [小时] [每月的某一天] [每年的某一月] [每周的某一天闷指] [需要执行的命令的路径]

00 2 * * * /home/xxx/test.php

比如这个就是凌晨两点自动执行/home/xxx目皮罩答录下的test.php

借助crontab来编写;

  1. 编写定时执行脚本(单独的一个php文件逗并睁,或者某个方法);

  2. 配山岁置crontab,指定执行路蔽判径地址;

  3. 启动crontab服务即可。

定时任务最好的悔春哪方法是用linux系统的加护任森滑务来写,你是虚拟主机那无碧码法用这个法子,你可以写前台访问触发的法子,把代码写到页面,判断时间段如果是在设置的时间段就执行。

二、...某个PHP脚本文件,带参数,没有服务器权限,虚拟主机用户 - 技术问答...

原帖由

2009-2-7

22:15

发表

[i][/url]PHP必须是有访问才能被解析,宏配穗但是像DZ的计划任务是一种曲线的方法我不过多描述,大致如此:1.设定一个执行时间戳,存入缓存或者数据库2.当页面执行的蔽卜时候,判断当前时间戳卖高是否大于缓存或数据库中的时间戳,如果

...

[/b]岂不是每次都要查询数据库

原帖由

2009-2-7

22:49

发表

[i][/森巧url]PHP不能自动执行这是大家知道的。其实这种方法和在你设定戚闷时间执行是一个效果,如果在你设定时间后到有第一次访问之前没有任何一次访问,那么执行不执行都是没有效果产生的。因高春弯为PHP是产生东西给人看的,在人看的时候

...

[/b]那要怎么做?我需要的是到某一时刻执行。而不是每隔一端时间去执行!

PHP必须是有访问才嫌搭告能被解析,但是像DZ的计划枝物任务是一种曲线的方法我不过多描述,大致如此:1.设定一个执行时间戳,存入缓存或者数据库2.当页面执行的时候,判断当前时间戳是否大于缓存或数据库芹明中的时间戳,如果大于,则执行相关的语句,否则跳过。

php定时执行任务的几个方法(网上搜集,未验证)1.

Linux下crontab,

windows下计划任务

2.

找个被频繁调用的网页,

里面加上一个检测代码

3.

set_time_limit

(0);

ignore_user_abort(true);4.

用一台机器开着页面,使用AJAX完成这个

定时任务

(我自己添加的,觉得也算是一种方法)由于没有管理权限,方法1不靠谱;方法2的前提是必须有大量的用户群体;方法3可以一试,但是服务器一旦重启就会失效。方法4,时间可能不是慧衡很精确拍轿,而且客户端页面一直开启似乎也很难做到前贺做。

三、PHP实现定时任务的几种方法

一. 简单

<?php

ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.

set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去

ini_set('memory_limit','512M'); // 设置内存限制

$interval=60*30;// 每隔半小时运行

do{

//ToDo

sleep($interval);// 等待5分钟

}

while(true);

二. 简单 可控型

config.php

<?php

return 1;

?>

cron.php

ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.

set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去

$interval=60*30;// 每隔半小时运行

do{

$run = include 'config.php';

if(!$run) die('process abort');

//ToDo

sleep($interval);// 等待5分钟

}

while(true);

三. 简单 改进型

<?php

$time=15;

$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

/*

function

*/

sleep($time);

file_get_contents($url);

?>

四、请问如何用PHP语言让系统定时执行一个任务?

写好php脚本,然后使用linux的crontab定时执行它

如果能使用主机上的计划任务就更好。

如果不能,就通过写一个全局计时器,通过用户访问PHP页面来族扮触发。

这是根据B/S软件模型来决定的,散漏PHP代码一般不会主动执行,只会被动地等待用户访问后执行,所以你可以每次被访问时检查是否到兆掘灶达设定的时间点,如果到了就执行保存事件一次,并把全局的另外一个条件(如将结果保存在磁盘上,下次检查是否有这个文件)设为真,下次就不会再执行。

纯手打,仅提供一个思路~

<?php

ignore_user_abort(); /纯碰物/ 在后台运行

set_time_limit(0); // 不停地运行

$interval=30; //吵迟 设置做液定时值

do{

//做你要做的事情

sleep($interval); // 等侍

}while(true);

?>

为啥不做一个shell脚本,在规定时间内触发,在php中写一个函数并且其中与shell做一个对接

五、php定时执行任务的几个方法

PHP定时执行的三种方式实现

1、windows 的计划任务 2、linux的脚本程序 3、让web浏览器定时刷新

具体实现

1、windows计划任务

PHP很少在win服务器上跑,具体实现也不再深究,看网上实现的原简物型理大蚂败概是写bat脚本,然后让window任务添加执行这个bat脚本。

2、linux 的脚本实现

这里主要使用到crontab这个命令,

使用方式 :

复制代码 代码如下:crontab filecrontab [ -u user ] [ -u user ] { -l | -r | -e }

说明 :

crontab是用来让使用者在固定时间或固定间隔执行程式之用

使用crontab写shell脚本,然后让PHP调用shell,这个是利用linux的特性,应该还不算PHP自身语言的特性

3、PHP实现定时执行计划任务

使用php让浏览器刷新需要解决几个问题

PHP脚本执行时间限制,默认的是30m 解决办法:set_time_limit();或者修改PHP.ini 设置max_execution_time时间(不推荐)

如果客户端浏览器关闭,程序可能就被迫终止,解决办法:ignore_user_abort即使关闭页面依然正常执行

如果程序一直执行很有可能会消耗大量的资源,解决办法使用sleep使用程序休眠一会,然后在执行

PHP定时执行的代码:

<?php ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行. set_time_limit(3000);// 通过set_time_limit(0)可以让程序无限制的执行下去 $interval=5;// 每隔5s运行 //方法1--死循环 do{ echo '测试'.time().'<br/>'; sleep($interval);// 等待5s }while(true); //方法2---sleep 定时执行 require_once './curlClass.php';//引入文件 $curl = new httpCurl();//实例化 $stime = $curl->getmicrotime(); for($i=0;$i<=10;$i++){ echo '测试'.time().'<br/>'; sleep($interval);// 等待5s } ob_flush(); flush(); $etime = $curl->getmicrotime(); echo '<hr>'; echo round(($etime-stime),4);//程序执行时间

测试的时候发现这个效率并不是很高。

总结:

个人感觉PHP定时执行任务的效率不是很高,建议关于定时执行任务的工作还是交给拦猜shell来做吧。

到此,以上就是小编对于虚拟主机php定时任务的问题就介绍到这了,希望介绍关于虚拟主机php定时任务的5点解答对大家有用。


服务器购买/咨询热线:1563700917115617636856

本文链接:https://www.sqxnmj.com/jishuzhichiyuweihu/10350.html
tags:
腾讯云服务器特惠

  • 关注微信
是否收录:

猜你喜欢

微信公众号