Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[BUG] uchome2 的 系统计划任务 经常会自己变成无效。原因未明

[复制链接]
terrytt 发表于 2009-9-22 14:58:18 | 显示全部楼层 |阅读模式
本帖最后由 terrytt 于 2009-9-22 15:00 编辑

在2008 server x64, IIS7 + fastcgi ,mysql 5.1.37,php 5.2.11

uchome的 系统计划任务 总有几个任务经常会自己变成无效

最严重的是 同步UC的feed ,天天都要手动启用执行,好了几小时又无效。

不知道什么原因...
huaxuanso 发表于 2009-9-22 15:16:39 | 显示全部楼层
sql服务器有问题。。。。。
回复

使用道具 举报

 楼主| terrytt 发表于 2009-9-22 15:18:50 | 显示全部楼层
请问SQL会有什么问题造成?

配置还是啥?

如果有推荐配置请共享
回复

使用道具 举报

 楼主| terrytt 发表于 2009-9-23 10:55:46 | 显示全部楼层
请高人检测一下原因....
回复

使用道具 举报

weblove26 发表于 2009-9-24 12:12:13 | 显示全部楼层
确实存在此问题,严重
回复

使用道具 举报

weblove26 发表于 2009-9-25 10:21:48 | 显示全部楼层
系统计划任务 偶尔无故失效
回复

使用道具 举报

coldhair 发表于 2009-9-25 21:56:34 | 显示全部楼层
没有遇到这样的问题啊
回复

使用道具 举报

liuzhly 发表于 2009-12-2 15:04:20 | 显示全部楼层
试试解决方法吧:

我查看了,UChome\source\function_cron.php  有个函数

//下次执行的时间
function cronnextrun($cron) {
        global $_SGLOBAL, $_SCONFIG;

        if(empty($cron)) return FALSE;

        list($yearnow, $monthnow, $daynow, $weekdaynow, $hournow, $minutenow) = explode('-', sgmdate('Y-m-d-w-H-i', $_SGLOBAL['timestamp']));
       
        $cron['minute'] = explode("\t", $cron['minute']);
       
        if($cron['weekday'] == -1) {
                if($cron['day'] == -1) {
                        $firstday = $daynow;
                        $secondday = $daynow + 1;
                } else {
                        $firstday = $cron['day'];
                        $secondday = $cron['day'] + sgmdate('t', $_SGLOBAL['timestamp']);
                }
        } else {
                $firstday = $daynow + ($cron['weekday'] - $weekdaynow);
                $secondday = $firstday + 7;
        }

        if($firstday < $daynow) {
                $firstday = $secondday;
        }

        if($firstday == $daynow) {
                $todaytime = crontodaynextrun($cron);
                if($todaytime['hour'] == -1 && $todaytime['minute'] == -1) {
                        $cron['day'] = $secondday;
                        $nexttime = crontodaynextrun($cron, 0, -1);
                        $cron['hour'] = $nexttime['hour'];
                        $cron['minute'] = $nexttime['minute'];
                } else {
                        $cron['day'] = $firstday;
                        $cron['hour'] = $todaytime['hour'];
                        $cron['minute'] = $todaytime['minute'];
                }
        } else {
                $cron['day'] = $firstday;
                $nexttime = crontodaynextrun($cron, 0, -1);
                $cron['hour'] = $nexttime['hour'];
                $cron['minute'] = $nexttime['minute'];
        }

        //更新下次运行时间
        $nextrun = @gmmktime($cron['hour'], $cron['minute'], 0, $monthnow, $cron['day'], $yearnow) - $_SCONFIG['timeoffset'] * 3600;
        $setarr = array(
                'lastrun' => $_SGLOBAL['timestamp'],
                'nextrun' => $nextrun
        );
        if($nextrun <= $_SGLOBAL['timestamp']) {
                $setarr['available'] = 0;
        }

        updatetable('cron', $setarr, array('cronid'=>$cron['cronid']));
        return TRUE;
}


可能是执行的时候偶尔会出错,程序判断,然后自动关闭吧,所以把红色部分取消大家再试试应该没问题了!!

评分

1

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-16 10:20 , Processed in 0.034248 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表