
正文
php计划任务没有数据,php计划任务没有数据怎么办
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
PHP 计划任务 不能运行
这代码是运行不好的,我也写过类似的,不好用也不稳定。sleep($interval);,一直不知道为什么感觉在运行时是没有暂停过的。
你可以用计划任务,打开网址的方法来运行,这样很稳定。
下面是.bat程序的代码(用记事本写好代码保存后,重命名文件。后缀.txt改.bat就能运行了)
//关360浏览器,360有个自动刷新功能的,和计划任务着不多
@echo off
C:\Windows\system32\taskkill.exe /f /im 360se.exe
//程序
@echo off
start D:\123//网页
@echo off
start
相关问答
Q1: linux下使用crontab实现定时PHP计划任务失败的原因分析
很多人在linux下使用crontab实现PHP执行定时任务却未能成功,不能生成缓存。本文就linux下使用crontab实现定时PHP计划任务失败的原因做一分析。
一般我们linux定时执行php代码例如:
*/5
*
*
*
*
/usr/local/php/bin/php
/home/wwwroot/1.php
其实这样是可以执行php代码的。
但是为什么很多朋友在1.php写的生成一个缓存文件没有生成呢?
这个要涉及到crontab执行php的相对路径问题.
注意在执行文件中,有包含文件的,如:
include_once'./mysql.php';
当php代码中,用的是相对路径时,只有进入到那个目录下,
然后执行/usr/local/php/bin/php
/home/wwwroot/1.php
才能引用mysql.php生效。
解决方法如下:
*/10
*
*
*
*
cd
/home/wwwroot
/usr/local/php/bin/php
/home/wwwroot/1.php
同时也这样缓存才能生成在
/home/wwwroot。此处需要特别注意!
这是大部分写的所谓linux定时执行php没有提到的,也最容易产生误区的。
当然方法还有很多,还可以设置环境变量之类的。这个只是一个简单的方法。
Q2: 如何制作帝国加入php计划任务,自动备份当前用户数据库如ABC
linux系统自带crontab计划任务,可以满足你的需求。
编辑crontab配置文件的方法是:
crontab -e
编辑完成后,用:x组合键关闭并保存。不需要重启操作,时间到了以后,系统会自动调用定时任务。
示例,在凌晨4点重启lighthttpd:
0 4 * * * /usr/local/etc/rc.d/lighttpd restart
将命令的路径改为你写的备份脚本。
望采纳!
Q3: php discuz的定时任务是什么原理怎么实现的?求高手解答
php中定时计划任务的实现原理:
当 PHP 脚本正常地运行 NORMAL 状态时,连接为有效。当远程客户端中断连接时,ABORTED 状态的标记将会被打开。远程客户端连接的中断通常是由用户点击 STOP 按钮导致的。当连接时间超过 PHP 的时限时,TIMEOUT 状态的标记将被打开。
示例代码:
?php
ignore_user_abort(true);set_time_limit(0);
date_default_timezone_set('PRC'); // 切换到中国的时间
$run_time = strtotime('+1 day'); // 定时任务第一次执行的时间是明天的这个时候
$interval = 3600*12; // 每12个小时执行一次
if(!file_exists(dirname(__FILE__).'/cron-run')) exit(); // 在目录下存放一个cron-run文件,如果这个文件不存在,说明已经在执行过程中了,该任务就不能再激活,执行第二次,否则这个文件被多次访问的话,服务器就要崩溃掉了
do {
if(!file_exists(dirname(__FILE__).'/cron-switch')) break; // 如果不存在cron-switch这个文件,就停止执行,这是一个开关的作用
$gmt_time = microtime(true); // 当前的运行时间,精确到0.0001秒
$loop = isset($loop) $loop ? $loop : $run_time - $gmt_time; // 这里处理是为了确定还要等多久才开始第一次执行任务,$loop就是要等多久才执行的时间间隔
$loop = $loop 0 ? $loop : 0;
if(!$loop) break; // 如果循环的间隔为零,则停止
sleep($loop);
// ...
// 执行某些代码
// ...
@unlink(dirname(__FILE__).'/cron-run'); // 这里就是通过删除cron-run来告诉程序,这个定时任务已经在执行过程中,不能再执行一个新的同样的任务
$loop = $interval;
} while(true);







