唉,自个挖的坑,自个填。
先看程序1:
$redis_key_bid = 'com.mkt.adexchange.bid';
$redis_key_list = 'com.mkt.adexchange.listid';
$redis = $this->redis();
$arr_list = $redis->lRange($redis_key_list, 0, 99);//一次取100个
foreach($arr_list as $v){
$a = $redis->hGet($redis_key_bid, $v);
if(empty($a)) continue;
$data = json_decode($a, true);
if(empty($data)) continue;
$b = json_encode($data['imp_content']);
$data['imp_content'] = $b;
$b = json_encode($data['user_segment_content']);
$data['user_segment_content'] = $b;
if(empty($data['app_paid'])) $data['app_paid'] = -1;
if(empty($data['device_connecttype'])) $data['device_connecttype'] = '';
MMulti('ad_log', 'js_', 'DB_LOG')->add($data);
$redis->hDel($redis_key_bid, $v);
$redis->lPop($redis_key_list);
}
聪明的你有看到上面可能导致的问题吗?
要是还没有看出来,就继续看!!!!!!
要是还没有看出来,就继续看!!!!!!
要是还没有看出来,就继续看!!!!!!
要是还没有看出来,就继续看!!!!!!
程序2:
$curpage = $_redis->get($this->repair_repair_page);//获取分页值正常
$pagesize = 50;//每次捞50个订单数据
$curpage = empty($curpage) ? 1 : $curpage;
$offset = ($curpage - 1) * $pagesize;
$time_begin = strtotime(date('2016-07-23'));
$time_end = strtotime(date('2016-12-30'));
$where['po_add_time'] = array(array( 'ELT' , $time_end),array( 'EGT' , $time_begin));
if(!empty($order_no)){
unset($where['po_add_time']);
$where['po_order_no'] = $order_no;
}
$m_order = M('order','','');
$joinAdd = '字段,这里没有问题 ';
$fields = '字段,这里没有问题';
if(empty($order_no)){
$ret_order = $m_order->field($fields)->alias('a')->join($joinAdd)->where($where)->limit("{$offset},{$pagesize}")->select();
}else{
$ret_order = $m_order->field($fields)->alias('a')->join($joinAdd)->where($where)->select();
}
if(empty($ret_order)){
$this->Json('ok', 200, 'pintuan_error:没有订单信息,退出!' . json_encode($ret_order));
}
$num = 0;
foreach($ret_order as $k => $v){
//这里是业务逻辑,没有问题
$num += 1;
}
$curpage++;
$_redis->set($this->repair_repair_page, $curpage, $this->expire30);
$this->viaJson('ok', 200, '修复异常订单已操作退款的 '.$num.' 个。');
你要是还没有看出来,就到群里问问群主吧。
|