Esempio n. 1
0
 /**
  * Job执行逻辑
  */
 public function handle_request()
 {
     // 获取操作信息
     $action = Bll_Cms_BlockChange::getActionWithCommunity($this->actionId);
     if (empty($action) || empty($action['comms'])) {
         $this->writeLog('all action is finished');
         return false;
     }
     $isFinish = false;
     // 判断之前动作是否处理完
     if ($doListData = Bll_Cms_BlockChange::getDoList($action['id'], 3)) {
         if ($doListData['status'] == 2) {
             $isFinish = true;
         }
     } else {
         $this->writeLog('获取actionid=' . $action['id'] . '的dolist为空或者失败');
         return false;
     }
     if (!$isFinish) {
         $this->writeLog('action:' . $action['id'] . ' 正在' . $doListData['list_id'] . '处理阶段');
         return false;
     }
     // 标记处理状态
     Bll_Cms_BlockChange::updateDoList($action['id'], 4, 1, 'action:' . $action['id'] . ' list_id:4 处理中');
     // 处理comms
     $result = Bll_Cms_BlockChange::dealActionComms($action);
     // 更新dolist表
     if ($result && $result['status']) {
         Bll_Cms_BlockChange::updateDoList($action['id'], 4, 2);
         // 记录本次actionid
         file_put_contents($this->logDir . 'hzblock_change_actionid.log', $action['id']);
     } else {
         $errMsg = $result['msg'];
         Bll_Cms_BlockChange::updateDoList($action['id'], 4, 3, is_string($errMsg) ? $errMsg : implode(',', $errMsg));
     }
     // 记录log
     if ($result['msg'] && is_array($result['msg'])) {
         foreach ($result['msg'] as $msg) {
             $this->writeLog($msg);
         }
     }
 }
 /**
  * 检查前面处理是否ok
  * @return bool
  */
 private function isPreFinished()
 {
     // 判断之前动作是否处理完
     if ($doListData = Bll_Cms_BlockChange::getDoList($this->actionId, 4)) {
         if ($doListData['status'] == 2) {
             return true;
         } else {
             $this->writeLog('action:' . $this->actionId . ' 正在' . $doListData['list_id'] . '处理阶段');
         }
     } else {
         $this->writeLog('获取actionid=' . $this->actionId . '的dolist为空或者失败');
     }
     return false;
 }