首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP不会让页面每天/6小时自动更新

PHP不会让页面每天/6小时自动更新
EN

Stack Overflow用户
提问于 2010-03-23 10:17:26
回答 3查看 418关注 0票数 0

我的一个朋友在他的网站上建立了一个排名系统,而我正试图通过wordpress和godaddy在我的网站上托管。它为他更新,但当我将它加载到我的网站时,它工作了6个小时,但只要重新加载应该发生,它就会出错,我得到一个500超时错误。

他的主页是:http://www.jeremynoeljohnson.com/yakezieclub

我的页面当前位于http://sweatingthebigstuff.com/yakezieclub,但当你使用?reload=1时,它会给出错误。

你知道为什么会发生这种事吗?我可能需要更改任何设置?

我可以给你所有的代码,但是哪一部分呢?index.php文件?我不确定哪一部分搞砸了。我上传了和他一样的代码。

下面是重新加载的部分:

代码语言:javascript
复制
$cachefile = "rankings.html";
$daycachefile = "rankings_history.xml";
$cachetime = (60 * 60) * 6; // every 6 hours, the cache refreshes
$daycachetime = (60 * 60) * 24; // every 24 hours, the history will be written to - or whenever the page is requested after 24 hours has passed
$writenewdata = false;

if (!empty($_GET['reload']))
{
    if ($_GET['reload']== 1)
    {
        $cachetime = 1;
    }
}

if (!empty($_GET['reloadhistory']))
{
    if ($_GET['reloadhistory'] == 1)
    {
        $daycachetime = 1;
        $cachetime = 1;
    }
}

if (file_exists($daycachefile) && (time() - $daycachetime < filemtime($daycachefile)))
{
    // Do nothing
}
else
{
    $writenewdata = true;
    $cachetime = 1;
}

// Serve from the cache if it is younger than $cachetime
if (file_exists($cachefile) && (time() - $cachetime < filemtime($cachefile)))
{
    include($cachefile);
    echo "<!-- Cached ".date('jS F Y H:i', filemtime($cachefile))." -->";
    exit;
}
ob_start(); // start the output buffer

?>

EN

回答 3

Stack Overflow用户

发布于 2010-03-23 10:46:47

在包含缓存文件之后,您开始输出缓冲有什么特殊的原因吗?如果缓存文件只是原始的html,那么在开始缓冲之前,它必须已经转储到输出流中,后跟缓存日期注释。

有没有可能是脚本(或另一个脚本)中的某些内容在输出文件上设置了锁,从而导致重新加载检查部分在等待锁清除时挂起?

票数 0
EN

Stack Overflow用户

发布于 2010-03-23 19:28:43

它看起来真的很慢,这让我觉得你正在做一些非常密集的事情,或者一些具有高延迟的事情。如果你的web服务器达到了它的内部超时值,那么你会得到一个500错误。优化您的代码以提高速度或增加服务器的超时来解决此问题。

如果你发布了你的服务器平台,我可以让你知道你可以做些什么来增加超时。

希望这能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2010-03-23 20:37:49

两条线索:

  • 首先,检查您的文件系统在创建新文件时是否返回实际日期/时间。在一些系统上,文件修改时间被定位到一个时区,而在另一些系统上则不是(GMT )。文件时间其次,要小心使用
  • 。PHP使用缓存系统来避免访问hdd资源,这很好,但我从来没有弄清楚这个缓存是如何在内部管理的,并且是终生的。我建议您在每次运行更新脚本

时调用clearstatcache

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2497135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档