RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:9:30-18:00
你可能遇到了下面的问题
关闭右侧工具栏
使用织梦dedecms计划任务功能让网站每5分钟更新一次
  • 作者:爱牛网络
  • 发表时间:2018-07-05 08:40
  • 来源:爱牛网络

使用过dedecms织梦系统的人都知道有一个计划任务的功能,这个功能很多人不知道怎么使用,今日小编就讲讲如何使用计划任务让网站每5分钟自动更新首页,也就是自动生成 内容来自dedecms

index.html文件,让网站的静态文件保持一个更新的状态,这个的好处就是可以让蜘蛛在爬取index.html的时候,不会返回状态码304 ,因为你的首页是更新的状态,有利于蜘蛛

的爬取。

大家可以看看蜘蛛爬取的状态是200 0 0 这才是我们想要的:

2014-03-27 04:01:46 W3SVC3 2*0.20*.*0.** GET /index.html - 80 - 123.125.71.14 Mozilla/5.0+copyright dedecms

(compatible;+Baiduspider/2.0;++http://www.baidu.com/search/spider.html) 200 0 0 dedecms.com

2014-03-27 06:03:01 W3SVC3 2*0.20*.*0.** GET /index.html - 80 - 220.181.108.159 Mozilla/5.0+

(compatible;+Baiduspider/2.0;++http://www.baidu.com/search/spider.html) 200 0 0

好,下面说说计划任务怎么使用:

打开后台,在左侧的菜单栏中的系统里面有一个计划任务管理,点击后,看到有一个计划任务执行的说明:

 

·为了确保任务能执行完全,建议使用Dede的客户端工具,否则只能通过JS触发,但JS触发有很多不确定因素会导致任务不能完成;
·JS触发方式:在所有文档页面中用JS调用/plus/task.php?client=js(必须禁用计划任务的密码,系统配置参数->其它选项);
·自行定制客户端:直接访问“http://www.cngin.com/plus/task.php?clientpwd=管理密码”,会返回其中一个可执行任务的网址(没有可用任务则返回串:notask),然后客户端运行这个

网址即可。

看过说明后,我们来新建一个计划任务,我们首先需要一个任务的执行文件,也就是运行程序,可以让网站更新的程序,此文件大家可以在附件里面下载:dede-post.php

 

新建计划任务

把此文件:dede-post.php 上传到网站目录下的plus/task/里

 

为了可以让网站每隔5分钟更新一次我们还需要修改文件plus/task/task.php 内容来自dedecms

打开task.php把这个$daylimit参数改成300秒——$daylimit = 300;然后上传覆盖(你可以改成多少秒都行),好了,基本任务执行的条件都有了,还差一个JS触发方式,我们把代码:<script

 

language="javascript" src=" /plus/task.php?client=js"></script> 复制放到底部模板footer.htm 里面即可。 copyright dedecms

这样每当有人访问你的网站的时候就会触发这个JS,让你的执行程序运行一下,也就是网站自动更新了。赶紧试试吧

 

<?php
/*定时发布定时生成首页计划任务
*/
require_once(dirname(__FILE__).'/../../include/common.inc.php');
require_once(DEDEINC."/arc.partview.class.php");
 
$ntime =strtotime("now")-3600*24*3;//当前时间
$dsql->ExecuteNoneQuery("Update `dede_archives` set arcrank='0' where senddate>$ntime and arcrank!='-2' ");//将三天内未审核的文章设置为审核状态
 
/*----------
function makehtml_homepage.php(){
-----------*/
 
$homepageinfo_sql = "SELECT * FROM `dede_homepageset`";
$dsql->Execute('homepageinfo_rs',$homepageinfo_sql);
$homepageinfo = $dsql->GetObject('homepageinfo_rs');
$homeFile = $homepageinfo->position;//首页生成为位置
$showmod = $homepageinfo->showmod;//首页生成模式
$templet = $homepageinfo->templet;//首页模版
//print_r($homepageinfo);
    $fp = fopen($homeFile,"w") or die("你指定的文件名有问题,无法创建文件");
    fclose($fp);
    
    // 判断首页生成模式
    if ($showmod == 1)
    {
        // 需要生成静态
        $templet = str_replace("{style}", $cfg_df_style, $templet);
        $pv = new PartView();
        $GLOBALS['_arclistEnv'] = 'index';
        $pv->SetTemplet($cfg_basedir.$cfg_templets_dir."/".$templet);
        $pv->SaveToHtml("../".$homeFile);
echo "alert('计划任务触发成功');";
        //echo "成功更新主页HTML:".$homeFile."<br /><a href='".$cfg_basehost."/index.html' target='_blank'>浏览...</a><br />";
    } else { 
        // 动态浏览
        if (file_exists($homeFile)) @unlink($homeFile);
        //echo "采用动态浏览模式:<a href='".$cfg_basehost."/index.php' target='_blank'>浏览...</a><br />";
    }
    
 
    if($serviterm =="")
    {
        $config=array();
    } else {
        list($servurl, $servuser, $servpwd) = explode(',',$serviterm);
        $config=array( 'hostname' => $servurl, 'username' => $servuser, 
                       'password' => $servpwd,'debug' => 'TRUE');
    }
    //如果启用远程站点则上传
    if($cfg_remote_site=='Y' && $showmod==1)
    {
        if($ftp->connect($config) && $isremote == 1)
        {
            if($ftp->upload($position, $remotepos, 'ascii')) echo "远程发布成功!"."<br />";
        }
    }
/*----------
}
-----------*/
//成功返回信息
$dsql->ExecuteNoneQuery("Update `dede_sys_task` set sta='成功' where dourl='dede-post.php' ");
//echo "计划任务执行成功!";
exit();
?>