猿问

php定时任务循环执行replace操作无故中断

问题描述

执行20000+条数据后会停止运行,是超时的原因么?

问题出现的环境背景及自己尝试过哪些方法

set_time_limit(0) 无效

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
public function doMerchantInfo() {

    $merchantId = $input->get('merchantId');
    $where = " grade_id <> 0 ";
    $merchantNumber = Libs_Merchant_Merchant::getMerchantNumber($where);
    if ($merchantNumber) {
        for ($i = 0; $i < $merchantNumber; $i += 5000) {
            $merchantInfo = Libs_Merchant_Merchant::getMerchantInfo(array("id"), $where, array('id' => 'asc'), $i, 5000);

            if (is_array($merchantInfo) && !empty($merchantInfo)) {
                foreach ($merchantInfo as $val) {
                    echo "\n";
                    echo $val['id'];
                    echo "\n";
                    
                    self::setCache('Merchant_MerchantInfo', array('merchantId' => $val['id']));
                    
                    // 记录日志
                    Db_ShopLog::replaceData('zs_merchant_cache_log', array(
                        'mer_id'   => $val['id'],
                        'add_time' => date("Y-m-d H:i:s"),                            
                    ));                        
                }
            }
            unset($merchantInfo);
        }
    }
    exit;
}

你期待的结果是什么?实际看到的错误信息又是什么?

眼眸繁星
浏览 549回答 1
1回答

慕的地8271018

>>/data/xx.log 2>&1 //执行把日志 报错放文件 或看nohup.out文件
随时随地看视频慕课网APP
我要回答