diff --git a/application/api/job/ArticleAiCreateContent.php b/application/api/job/ArticleAiCreateContent.php index d8d5640..3e4704e 100644 --- a/application/api/job/ArticleAiCreateContent.php +++ b/application/api/job/ArticleAiCreateContent.php @@ -9,31 +9,33 @@ class ArticleAiCreateContent public function fire(Job $job, $data) { + // 记录任务开始执行 + $sLogPath = ROOT_PATH.'public/queue_log/ArticleAiCreateContent_'.date('Ymd').'.log'; + file_put_contents($sLogPath,'-----------Queue job started-----------' . json_encode($data)."\n",FILE_APPEND); + //获取任务ID $iLogId = 0; try { //实例化 $oQueueJob = new QueueJob; $sMsg = '文章AI内容生成成功'; - if(!empty($job->getRawBody())){ - $aJob = json_decode($job->getRawBody(), true); - $aParam = [ - 'job_id' => empty($aJob['id']) ? '' : $aJob['id'], - 'job_class' => get_class($this), - 'status' => 0, - 'create_time' => time(), - 'params' => json_encode($aJob, JSON_UNESCAPED_UNICODE) - ]; - $iLogId = $oQueueJob->addLog($aParam); - // 步骤1:上传素材(图片) - $iArticleId = empty($data['article_id']) ? 0 : $data['article_id']; - if (!empty($iArticleId)) { - //上传素材 - $oAiarticle = new Aiarticle; - $aResult = json_decode($oAiarticle->create($data),true); - $iStatus = empty($aResult['status']) ? 0 : $aResult['status']; - $sMsg = empty($aResult['msg']) ? '文章AI内容生成失败' : $aResult['msg']; - } + $aJob = empty($job->getRawBody()) ? [] : json_decode($job->getRawBody(), true); + $aParam = [ + 'job_id' => empty($aJob['id']) ? 'ArticleAiCreateContent'.rand(100, 999) : $aJob['id'], + 'job_class' => get_class($this), + 'status' => 0, + 'create_time' => time(), + 'params' => json_encode($data, JSON_UNESCAPED_UNICODE) + ]; + $iLogId = $oQueueJob->addLog($aParam); + // 步骤1:上传素材(图片) + $iArticleId = empty($data['article_id']) ? 0 : $data['article_id']; + if (!empty($iArticleId)) { + //上传素材 + $oAiarticle = new Aiarticle; + $aResult = json_decode($oAiarticle->create($data),true); + $iStatus = empty($aResult['status']) ? 0 : $aResult['status']; + $sMsg = empty($aResult['msg']) ? '文章AI内容生成失败' : $aResult['msg']; } $job->delete(); @@ -41,7 +43,7 @@ class ArticleAiCreateContent $aParam = ['log_id' => $iLogId,'status' => 1,'update_time' => time(),'error' => $sMsg]; $oQueueJob->updateLog($aParam); // // 记录日志 - // \think\Log::info("ArticleAiCreateContent延迟任务执行成功: ".json_encode($data)); + file_put_contents($sLogPath,'-----------Queue job end---------'."\n\n\n",FILE_APPEND); } catch (\Exception $e) { //实例化 @@ -51,8 +53,7 @@ class ArticleAiCreateContent $aParam = ['log_id' => $iLogId,'status' => 2,'update_time' => time(),'error' => $sMsg]; $oQueueJob->updateLog($aParam); $job->delete(); - // // 记录错误日志 - // \think\Log::error("ArticleAiCreateContent延迟任务失败: ".$e->getMessage()); + }finally { gc_collect_cycles(); // 强制垃圾回收 } diff --git a/application/api/job/RecommendReviewer.php b/application/api/job/RecommendReviewer.php index 96145bf..16af1a6 100644 --- a/application/api/job/RecommendReviewer.php +++ b/application/api/job/RecommendReviewer.php @@ -7,63 +7,69 @@ class RecommendReviewer { // 推荐审稿人任务 public function fire(Job $job, $data) - { + { + + + // 记录任务开始执行 + $sLogPath = ROOT_PATH.'public/queue_log/RecommendReviewer_'.date('Ymd').'.log'; + file_put_contents($sLogPath,'-----------Queue job started-----------' . json_encode($data)."\n",FILE_APPEND); //获取任务ID $iLogId = 0; try { + //实例化 $oQueueJob = new QueueJob; $sMsg = '获取推荐审稿人信息成功'; - if(!empty($job->getRawBody())){ - $aJob = json_decode($job->getRawBody(), true); - $aParam = [ - 'job_id' => empty($aJob['id']) ? '' : $aJob['id'], - 'job_class' => get_class($this), - 'status' => 0, - 'create_time' => time(), - 'params' => json_encode($aJob, JSON_UNESCAPED_UNICODE) - ]; - $iLogId = $oQueueJob->addLog($aParam); - // 步骤1:上传素材(图片) - $iArticleId = empty($data['article_id']) ? 0 : $data['article_id']; - if (!empty($iArticleId)) { + // 记录异常日志 + $aJob = empty($job->getRawBody()) ? [] : json_decode($job->getRawBody(), true); + $aParam = [ + 'job_id' => empty($aJob['id']) ? 'RecommendReviewer'.rand(100, 999) : $aJob['id'], + 'job_class' => get_class($this), + 'status' => 0, + 'create_time' => time(), + 'params' => json_encode($data, JSON_UNESCAPED_UNICODE) + ]; + $iLogId = $oQueueJob->addLog($aParam); + // 步骤1:上传素材(图片) + $iArticleId = empty($data['article_id']) ? 0 : $data['article_id']; - $aParam = ['article_id' => $iArticleId,'page' => 1,'size' => empty($data['size']) ? 5 : $data['size']]; - //获取推荐审稿人信息 - $oReviewer = new Reviewer; - $aResult = json_decode($oReviewer->recommend($aParam),true); - $iStatus = empty($aResult['status']) ? 0 : $aResult['status']; - $sMsg = empty($aResult['msg']) ? '' : $aResult['msg']; - //数量 - $iCount = empty($aResult['data']['total']) ? 0 : $aResult['data']['total']; - //推荐数量 - $iSize = empty($aResult['data']['size']) ? 0 : $aResult['data']['size']; - //判断是否给期刊管理者发邮件【数据库的审稿数量小于推荐数量】 - if($iCount < $iSize){ - $aSendEmailResult = json_decode($oReviewer->emailForEditor($aParam),true); + if (!empty($iArticleId)) { + + $aParam = ['article_id' => $iArticleId,'page' => 1,'size' => empty($data['size']) ? 5 : $data['size']]; + //获取推荐审稿人信息 + $oReviewer = new Reviewer; + $aResult = json_decode($oReviewer->recommend($aParam),true); + $iStatus = empty($aResult['status']) ? 0 : $aResult['status']; + $sMsg = empty($aResult['msg']) ? '' : $aResult['msg']; + //数量 + $iCount = empty($aResult['data']['total']) ? 0 : $aResult['data']['total']; + //推荐数量 + $iSize = empty($aResult['data']['size']) ? 0 : $aResult['data']['size']; + //判断是否给期刊管理者发邮件【数据库的审稿数量小于推荐数量】 + if($iCount < $iSize){ + $aSendEmailResult = json_decode($oReviewer->emailForEditor($aParam),true); + $sMsg .= ';'; + $sMsg .= empty($aSendEmailResult['msg']) ? '发送邮件入队成功' : $aSendEmailResult['msg']; + } + //推荐审稿人数据 + $aResult = empty($aResult['data']['lists']) ? [] : $aResult['data']['lists']; + if(empty($aResult)){ + $sMsg .= ';'; + $sMsg .= 'No qualified reviewers were selected'; + } + if(!empty($aResult)){ + $aParam = ['article_id' => $iArticleId,'reviewer_id' => array_column($aResult, 'reviewer_id')]; + $aResult = json_decode($oReviewer->add($aParam),true); + $iStatus = empty($aResult['status']) ? 0 : $aResult['status']; + $sMsg .= ';'; + $sMsg .= empty($aResult['msg']) ? 'Reviewer data insertion failed' : $aResult['msg']; + //发送邀请审稿人审稿邮件 + if($iStatus == 1){ + $aResult = json_decode($oReviewer->email($aParam),true); + $iStatus = empty($aResult['status']) ? 0 : $aResult['status']; $sMsg .= ';'; - $sMsg .= empty($aSendEmailResult['msg']) ? '发送邮件入队成功' : $aSendEmailResult['msg']; - } - //推荐审稿人数据 - $aResult = empty($aResult['data']['lists']) ? [] : $aResult['data']['lists']; - if(empty($aResult)){ - $sMsg .= ';'; - $sMsg .= 'No qualified reviewers were selected'; - } - if(!empty($aResult)){ - $aParam = ['article_id' => $iArticleId,'reviewer_id' => array_column($aResult, 'reviewer_id')]; - $aResult = json_decode($oReviewer->add($aParam),true); - $iStatus = empty($aResult['status']) ? 0 : $aResult['status']; - $sMsg .= ';'; $sMsg .= empty($aResult['msg']) ? 'Reviewer data insertion failed' : $aResult['msg']; - //发送邀请审稿人审稿邮件 - if($iStatus == 1){ - $aResult = json_decode($oReviewer->email($aParam),true); - $iStatus = empty($aResult['status']) ? 0 : $aResult['status']; - $sMsg .= ';'; - $sMsg .= empty($aResult['msg']) ? 'Reviewer data insertion failed' : $aResult['msg']; - } } } } @@ -72,8 +78,9 @@ class RecommendReviewer //更新任务状态 $aParam = ['log_id' => $iLogId,'status' => 1,'update_time' => time(),'error' => $sMsg]; $oQueueJob->updateLog($aParam); - // // 记录日志 - // \think\Log::info("RecommendReviewer延迟任务执行成功: ".json_encode($data)); + //记录日志 + file_put_contents($sLogPath,'-----------Queue job end---------'."\n\n\n",FILE_APPEND); + } catch (\Exception $e) { //实例化 @@ -83,8 +90,7 @@ class RecommendReviewer $aParam = ['log_id' => $iLogId,'status' => 2,'update_time' => time(),'error' => $sMsg]; $oQueueJob->updateLog($aParam); $job->delete(); - // // 记录错误日志 - // \think\Log::error("RecommendReviewer延迟任务失败: ".$e->getMessage()); + }finally { gc_collect_cycles(); // 强制垃圾回收 } diff --git a/application/api/job/RelatedArticle.php b/application/api/job/RelatedArticle.php index 7f16614..cb2d641 100644 --- a/application/api/job/RelatedArticle.php +++ b/application/api/job/RelatedArticle.php @@ -9,39 +9,43 @@ class RelatedArticle public function fire(Job $job, $data) { + // 记录任务开始执行 + $sLogPath = ROOT_PATH.'public/queue_log/RelatedArticle_'.date('Ymd').'.log'; + file_put_contents($sLogPath,'-----------Queue job started-----------' . json_encode($data)."\n",FILE_APPEND); + //获取任务ID $iLogId = 0; try { //实例化 $oQueueJob = new QueueJob; $sMsg = '获取相关文章信息成功'; - if(!empty($job->getRawBody())){ - $aJob = json_decode($job->getRawBody(), true); - $aParam = [ - 'job_id' => empty($aJob['id']) ? '' : $aJob['id'], - 'job_class' => get_class($this), - 'status' => 0, - 'create_time' => time(), - 'params' => json_encode($aJob, JSON_UNESCAPED_UNICODE) - ]; - $iLogId = $oQueueJob->addLog($aParam); - // 步骤1:上传素材(图片) - $iArticleId = empty($data['article_id']) ? 0 : $data['article_id']; - if (!empty($iArticleId)) { - //上传素材 - $oJournalArticle = new JournalArticle; - $aResult = json_decode(JournalArticle::get($data),true); - $iStatus = empty($aResult['status']) ? 0 : $aResult['status']; - $sMsg = empty($aResult['msg']) ? '获取相关文章信息失败' : $aResult['msg']; - } + + $aJob = empty($job->getRawBody()) ? [] : json_decode($job->getRawBody(), true); + $aParam = [ + 'job_id' => empty($aJob['id']) ? 'RelatedArticle'.rand(100, 999) : $aJob['id'], + 'job_class' => get_class($this), + 'status' => 0, + 'create_time' => time(), + 'params' => json_encode($data, JSON_UNESCAPED_UNICODE) + ]; + $iLogId = $oQueueJob->addLog($aParam); + // 步骤1:上传素材(图片) + $iArticleId = empty($data['article_id']) ? 0 : $data['article_id']; + if (!empty($iArticleId)) { + //上传素材 + $oJournalArticle = new JournalArticle; + $aResult = json_decode(JournalArticle::get($data),true); + $iStatus = empty($aResult['status']) ? 0 : $aResult['status']; + $sMsg = empty($aResult['msg']) ? '获取相关文章信息失败' : $aResult['msg']; } + $job->delete(); //更新任务状态 $aParam = ['log_id' => $iLogId,'status' => 1,'update_time' => time(),'error' => $sMsg]; $oQueueJob->updateLog($aParam); // // 记录日志 - // \think\Log::info("RelatedArticle延迟任务执行成功: ".json_encode($data)); + file_put_contents($sLogPath,'-----------Queue job end---------'."\n\n\n",FILE_APPEND); } catch (\Exception $e) { //实例化 @@ -51,8 +55,7 @@ class RelatedArticle $aParam = ['log_id' => $iLogId,'status' => 2,'update_time' => time(),'error' => $sMsg]; $oQueueJob->updateLog($aParam); $job->delete(); - // // 记录错误日志 - // \think\Log::error("RelatedArticle延迟任务失败: ".$e->getMessage()); + }finally { gc_collect_cycles(); // 强制垃圾回收 } diff --git a/application/api/job/ReviewerScore.php b/application/api/job/ReviewerScore.php index 21a2d20..ee1f275 100644 --- a/application/api/job/ReviewerScore.php +++ b/application/api/job/ReviewerScore.php @@ -8,6 +8,9 @@ class ReviewerScore // 审稿人评分 public function fire(Job $job, $data) { + // 记录任务开始执行 + $sLogPath = ROOT_PATH.'public/queue_log/ReviewerScore_'.date('Ymd').'.log'; + file_put_contents($sLogPath,'-----------Queue job started-----------' . json_encode($data)."\n",FILE_APPEND); //获取任务ID $iLogId = 0; @@ -15,35 +18,35 @@ class ReviewerScore //实例化 $oQueueJob = new QueueJob; $sMsg = '给审稿人评分处理成功'; - if(!empty($job->getRawBody())){ - $aJob = json_decode($job->getRawBody(), true); - $aParam = [ - 'job_id' => empty($aJob['id']) ? '' : $aJob['id'], - 'job_class' => get_class($this), - 'status' => 0, - 'create_time' => time(), - 'params' => json_encode($aJob, JSON_UNESCAPED_UNICODE) - ]; - $iLogId = $oQueueJob->addLog($aParam); + + $aJob = empty($job->getRawBody()) ? [] : json_decode($job->getRawBody(), true); + $aParam = [ + 'job_id' => empty($aJob['id']) ? 'ReviewerScore'.rand(100, 999) : $aJob['id'], + 'job_class' => get_class($this), + 'status' => 0, + 'create_time' => time(), + 'params' => json_encode($data, JSON_UNESCAPED_UNICODE) + ]; + $iLogId = $oQueueJob->addLog($aParam); - //审稿人评分 - $iArticleId = empty($data['article_id']) ? 0 : $data['article_id'];//文章ID - $iReviewerId = empty($data['reviewer_id']) ? 0 : $data['reviewer_id'];//审稿人ID - $iArtRevId = empty($data['art_rev_id']) ? 0 : $data['art_rev_id'];//主键ID - if (!empty($iArticleId) && !empty($iArtRevId) && !empty($iArtRevId)) { - $aParam = ['article_id' => $iArticleId,'reviewer_id' => $iReviewerId,'art_rev_id' => $iArtRevId]; - $oReviewer = new Reviewer; - $aResult = json_decode($oReviewer->score($aParam),true); - $sMsg = empty($aResult['msg']) ? '给审稿人评分处理失败' : $aResult['msg']; - } + //审稿人评分 + $iArticleId = empty($data['article_id']) ? 0 : $data['article_id'];//文章ID + $iReviewerId = empty($data['reviewer_id']) ? 0 : $data['reviewer_id'];//审稿人ID + $iArtRevId = empty($data['art_rev_id']) ? 0 : $data['art_rev_id'];//主键ID + if (!empty($iArticleId) && !empty($iArtRevId) && !empty($iArtRevId)) { + $aParam = ['article_id' => $iArticleId,'reviewer_id' => $iReviewerId,'art_rev_id' => $iArtRevId]; + $oReviewer = new Reviewer; + $aResult = json_decode($oReviewer->score($aParam),true); + $sMsg = empty($aResult['msg']) ? '给审稿人评分处理失败' : $aResult['msg']; } + $job->delete(); //更新任务状态 $aParam = ['log_id' => $iLogId,'status' => 1,'update_time' => time(),'error' => $sMsg]; $oQueueJob->updateLog($aParam); - // // 记录日志 - // \think\Log::info("RecommendReviewer延迟任务执行成功: ".json_encode($data)); + // 记录日志 + file_put_contents($sLogPath,'-----------Queue job end---------'."\n\n\n",FILE_APPEND); } catch (\Exception $e) { //实例化 @@ -53,8 +56,7 @@ class ReviewerScore $aParam = ['log_id' => $iLogId,'status' => 2,'update_time' => time(),'error' => $sMsg]; $oQueueJob->updateLog($aParam); $job->delete(); - // // 记录错误日志 - // \think\Log::error("RecommendReviewer延迟任务失败: ".$e->getMessage()); + }finally { gc_collect_cycles(); // 强制垃圾回收 } diff --git a/application/api/job/RevisionReviewer.php b/application/api/job/RevisionReviewer.php index b110c2d..8005311 100644 --- a/application/api/job/RevisionReviewer.php +++ b/application/api/job/RevisionReviewer.php @@ -9,39 +9,43 @@ class RevisionReviewer public function fire(Job $job, $data) { + // 记录任务开始执行 + $sLogPath = ROOT_PATH.'public/queue_log/RevisionReviewer_'.date('Ymd').'.log'; + file_put_contents($sLogPath,'-----------Queue job started-----------' . json_encode($data)."\n",FILE_APPEND); + //获取任务ID $iLogId = 0; try { //实例化 $oQueueJob = new QueueJob; $sMsg = '处理审稿人同意审稿但超时未审的数据成功'; - if(!empty($job->getRawBody())){ - $aJob = json_decode($job->getRawBody(), true); - $aParam = [ - 'job_id' => empty($aJob['id']) ? '' : $aJob['id'], - 'job_class' => get_class($this), - 'status' => 0, - 'create_time' => time(), - 'params' => json_encode($aJob, JSON_UNESCAPED_UNICODE) - ]; - $iLogId = $oQueueJob->addLog($aParam); + + $aJob = empty($job->getRawBody()) ? [] : json_decode($job->getRawBody(), true); + $aParam = [ + 'job_id' => empty($aJob['id']) ? 'RevisionReviewer'.rand(100, 999) : $aJob['id'], + 'job_class' => get_class($this), + 'status' => 0, + 'create_time' => time(), + 'params' => json_encode($data, JSON_UNESCAPED_UNICODE) + ]; + $iLogId = $oQueueJob->addLog($aParam); - //获取符合条件的文章审稿人信息 - $iArticleId = empty($data['article_id']) ? 0 : $data['article_id']; - if (!empty($iArticleId)) { - $aParam = ['article_id' => $iArticleId]; - $oReviewer = new Reviewer; - $aResult = json_decode($oReviewer->revisionForReviewer($aParam),true); - $sMsg = empty($aResult['msg']) ? '审稿人同意审稿但超时未审的数据失败' : $aResult['msg']; - } + //获取符合条件的文章审稿人信息 + $iArticleId = empty($data['article_id']) ? 0 : $data['article_id']; + if (!empty($iArticleId)) { + $aParam = ['article_id' => $iArticleId]; + $oReviewer = new Reviewer; + $aResult = json_decode($oReviewer->revisionForReviewer($aParam),true); + $sMsg = empty($aResult['msg']) ? '审稿人同意审稿但超时未审的数据失败' : $aResult['msg']; } + $job->delete(); //更新任务状态 $aParam = ['log_id' => $iLogId,'status' => 1,'update_time' => time(),'error' => $sMsg]; $oQueueJob->updateLog($aParam); - // // 记录日志 - // \think\Log::info("RecommendReviewer延迟任务执行成功: ".json_encode($data)); + //记录日志 + file_put_contents($sLogPath,'-----------Queue job end---------'."\n\n\n",FILE_APPEND); } catch (\Exception $e) { //实例化 @@ -51,8 +55,7 @@ class RevisionReviewer $aParam = ['log_id' => $iLogId,'status' => 2,'update_time' => time(),'error' => $sMsg]; $oQueueJob->updateLog($aParam); $job->delete(); - // // 记录错误日志 - // \think\Log::error("RecommendReviewer延迟任务失败: ".$e->getMessage()); + }finally { gc_collect_cycles(); // 强制垃圾回收 } diff --git a/application/api/job/SendRelatedArticleEmail.php b/application/api/job/SendRelatedArticleEmail.php index b6a7cf5..27c7643 100644 --- a/application/api/job/SendRelatedArticleEmail.php +++ b/application/api/job/SendRelatedArticleEmail.php @@ -9,76 +9,80 @@ class SendRelatedArticleEmail public function fire(Job $job, $data) { + // 记录任务开始执行 + $sLogPath = ROOT_PATH.'public/queue_log/SendRelatedArticleEmail_'.date('Ymd').'.log'; + file_put_contents($sLogPath,'-----------Queue job started-----------' . json_encode($data)."\n",FILE_APPEND); + //获取任务ID $iLogId = 0; try { //实例化 $oQueueJob = new QueueJob; $sMsg = '发送邮件成功'; - if(!empty($job->getRawBody())){ - $aJob = json_decode($job->getRawBody(), true); - $aParam = [ - 'job_id' => empty($aJob['id']) ? '' : $aJob['id'], - 'job_class' => get_class($this), - 'status' => 0, - 'create_time' => time(), - 'params' => json_encode($aJob, JSON_UNESCAPED_UNICODE) - ]; - $iLogId = $oQueueJob->addLog($aParam); + + $aJob = empty($job->getRawBody()) ? [] : json_decode($job->getRawBody(), true); + $aParam = [ + 'job_id' => empty($aJob['id']) ? 'SendRelatedArticleEmail'.rand(100, 999) : $aJob['id'], + 'job_class' => get_class($this), + 'status' => 0, + 'create_time' => time(), + 'params' => json_encode($data, JSON_UNESCAPED_UNICODE) + ]; + $iLogId = $oQueueJob->addLog($aParam); - //文章ID - $iArticleId = empty($data['article_id']) ? 0 : $data['article_id']; - //作者邮箱 - $email = empty($data['email']) ? '' : $data['email']; - //邮件主题 - $title = empty($data['title']) ? '' : $data['title']; - //发送来源 - $from_name = empty($data['from_name']) ? '' : $data['from_name']; - //邮件内容 - $content = empty($data['content']) ? '' : $data['content']; - //邮箱 - $memail = empty($data['memail']) ? '' : $data['memail']; - //密码 - $mpassword = empty($data['mpassword']) ? '' : $data['mpassword']; - //文章作者 - $article_author_id = empty($data['article_author_id']) ? 0 : $data['article_author_id']; - //关联文章ID - $related_article_id = empty($data['related_article_id']) ? 0 : $data['related_article_id']; - //期刊ID - $journal_id = empty($data['journal_id']) ? '' : $data['journal_id']; - //期刊issn - $journal_issn = empty($data['journal_issn']) ? '' : $data['journal_issn']; - //发送邮件 - if (!empty($iArticleId) && !empty($article_author_id) && !empty($related_article_id) && !empty($memail) && !empty($mpassword)) { + //文章ID + $iArticleId = empty($data['article_id']) ? 0 : $data['article_id']; + //作者邮箱 + $email = empty($data['email']) ? '' : $data['email']; + //邮件主题 + $title = empty($data['title']) ? '' : $data['title']; + //发送来源 + $from_name = empty($data['from_name']) ? '' : $data['from_name']; + //邮件内容 + $content = empty($data['content']) ? '' : $data['content']; + //邮箱 + $memail = empty($data['memail']) ? '' : $data['memail']; + //密码 + $mpassword = empty($data['mpassword']) ? '' : $data['mpassword']; + //文章作者 + $article_author_id = empty($data['article_author_id']) ? 0 : $data['article_author_id']; + //关联文章ID + $related_article_id = empty($data['related_article_id']) ? 0 : $data['related_article_id']; + //期刊ID + $journal_id = empty($data['journal_id']) ? '' : $data['journal_id']; + //期刊issn + $journal_issn = empty($data['journal_issn']) ? '' : $data['journal_issn']; + //发送邮件 + if (!empty($iArticleId) && !empty($article_author_id) && !empty($related_article_id) && !empty($memail) && !empty($mpassword)) { - //查询是否发送过邮件 - $oJournalArticle = new JournalArticle; - $aLog = json_decode($oJournalArticle::getLog(['article_id' => $iArticleId,'article_author_id' => $article_author_id,'related_article_id' => $related_article_id,'is_success' => 1]),true); - $sMsg = '邮件已发送:'.json_encode($aLog['data']); - if(empty($aLog['data'])){ - $aResult = sendEmail($email,$title,$from_name,$content,$memail,$mpassword); - $iStatus = empty($aResult['status']) ? 1 : $aResult['status']; - $iIsSuccess = 2; - $sMsg = empty($aResult['data']) ? '失败' : $aResult['data']; - if($iStatus == 1){ - $iIsSuccess = 1; - $sMsg = '成功'; - } - - //记录邮件发送日志 - $aEmailLog = ['article_id' => $iArticleId,'article_author_id' => $article_author_id,'related_article_id' => $related_article_id,'email' => $email,'content' => $content,'create_time' => time(),'is_success' => $iIsSuccess,'journal_id' => $journal_id,'journal_issn' => $journal_issn,'msg' => $sMsg]; - //添加邮件发送日志 - $iId = JournalArticle::addLog($aEmailLog); + //查询是否发送过邮件 + $oJournalArticle = new JournalArticle; + $aLog = json_decode($oJournalArticle::getLog(['article_id' => $iArticleId,'article_author_id' => $article_author_id,'related_article_id' => $related_article_id,'is_success' => 1]),true); + $sMsg = '邮件已发送:'.json_encode($aLog['data']); + if(empty($aLog['data'])){ + $aResult = sendEmail($email,$title,$from_name,$content,$memail,$mpassword); + $iStatus = empty($aResult['status']) ? 1 : $aResult['status']; + $iIsSuccess = 2; + $sMsg = empty($aResult['data']) ? '失败' : $aResult['data']; + if($iStatus == 1){ + $iIsSuccess = 1; + $sMsg = '成功'; } + + //记录邮件发送日志 + $aEmailLog = ['article_id' => $iArticleId,'article_author_id' => $article_author_id,'related_article_id' => $related_article_id,'email' => $email,'content' => $content,'create_time' => time(),'is_success' => $iIsSuccess,'journal_id' => $journal_id,'journal_issn' => $journal_issn,'msg' => $sMsg]; + //添加邮件发送日志 + $iId = JournalArticle::addLog($aEmailLog); } } + $job->delete(); //更新任务状态 $aParam = ['log_id' => $iLogId,'status' => 1,'update_time' => time(),'error' => $sMsg]; $oQueueJob->updateLog($aParam); // // 记录日志 - // \think\Log::info("RelatedArticle延迟任务执行成功: ".json_encode($data)); + file_put_contents($sLogPath,'-----------Queue job end---------'."\n\n\n",FILE_APPEND); } catch (\Exception $e) { //实例化 @@ -88,8 +92,7 @@ class SendRelatedArticleEmail $aParam = ['log_id' => $iLogId,'status' => 2,'update_time' => time(),'error' => $sMsg]; $oQueueJob->updateLog($aParam); $job->delete(); - // // 记录错误日志 - // \think\Log::error("RelatedArticle延迟任务失败: ".$e->getMessage()); + }finally { gc_collect_cycles(); // 强制垃圾回收 } diff --git a/application/api/job/SendReviewEmail.php b/application/api/job/SendReviewEmail.php index 047ff4f..cfc04dd 100644 --- a/application/api/job/SendReviewEmail.php +++ b/application/api/job/SendReviewEmail.php @@ -9,75 +9,79 @@ class SendReviewEmail public function fire(Job $job, $data) { + // 记录任务开始执行 + $sLogPath = ROOT_PATH.'public/queue_log/SendReviewEmail_'.date('Ymd').'.log'; + file_put_contents($sLogPath,'-----------Queue job started-----------'."\n",FILE_APPEND); + //获取任务ID $iLogId = 0; try { //实例化 $oQueueJob = new QueueJob; $sMsg = '发送邮件成功'; - if(!empty($job->getRawBody())){ - $aJob = json_decode($job->getRawBody(), true); - $aParam = [ - 'job_id' => empty($aJob['id']) ? '' : $aJob['id'], - 'job_class' => get_class($this), - 'status' => 0, - 'create_time' => time(), - 'params' => json_encode($aJob, JSON_UNESCAPED_UNICODE) - ]; - $iLogId = $oQueueJob->addLog($aParam); - //文章ID - $iArticleId = empty($data['article_id']) ? 0 : $data['article_id']; - //作者邮箱 - $email = empty($data['email']) ? '' : $data['email']; - //邮件主题 - $title = empty($data['title']) ? '' : $data['title']; - //发送来源 - $from_name = empty($data['from_name']) ? '' : $data['from_name']; - //邮件内容 - $content = empty($data['content']) ? '' : $data['content']; - //邮箱 - $memail = empty($data['memail']) ? '' : $data['memail']; - //密码 - $mpassword = empty($data['mpassword']) ? '' : $data['mpassword']; - //审稿记录表主键ID - $art_rev_id = empty($data['art_rev_id']) ? 0 : $data['art_rev_id']; - //审稿人ID - $reviewer_id = empty($data['reviewer_id']) ? 0 : $data['reviewer_id']; - //邮件类型 - $type = empty($data['type']) ? 1 : $data['type']; - //发送邮件 - if (!empty($email) && !empty($memail) && !empty($mpassword)) { + + $aJob = empty($job->getRawBody()) ? [] : json_decode($job->getRawBody(), true); + $aParam = [ + 'job_id' => empty($aJob['id']) ? 'SendReviewEmail'.rand(100, 999) : $aJob['id'], + 'job_class' => get_class($this), + 'status' => 0, + 'create_time' => time(), + 'params' => json_encode($data, JSON_UNESCAPED_UNICODE) + ]; + $iLogId = $oQueueJob->addLog($aParam); + //文章ID + $iArticleId = empty($data['article_id']) ? 0 : $data['article_id']; + //作者邮箱 + $email = empty($data['email']) ? '' : $data['email']; + //邮件主题 + $title = empty($data['title']) ? '' : $data['title']; + //发送来源 + $from_name = empty($data['from_name']) ? '' : $data['from_name']; + //邮件内容 + $content = empty($data['content']) ? '' : $data['content']; + //邮箱 + $memail = empty($data['memail']) ? '' : $data['memail']; + //密码 + $mpassword = empty($data['mpassword']) ? '' : $data['mpassword']; + //审稿记录表主键ID + $art_rev_id = empty($data['art_rev_id']) ? 0 : $data['art_rev_id']; + //审稿人ID + $reviewer_id = empty($data['reviewer_id']) ? 0 : $data['reviewer_id']; + //邮件类型 + $type = empty($data['type']) ? 1 : $data['type']; + //发送邮件 + if (!empty($email) && !empty($memail) && !empty($mpassword)) { - //查询是否发送过邮件 - $oReviewer = new Reviewer; - if($type != 3){ - $aLog = json_decode($oReviewer->getLog(['article_id' => $iArticleId,'art_rev_id' => $art_rev_id,'reviewer_id' => $reviewer_id,'is_success' => 1,'type' => $type]),true); - $aLog = empty($aLog['data']) ? [] : $aLog['data']; - $sMsg = '邮件已发送:'.json_encode($aLog); - } - if(empty($aLog)){ - $aResult = sendEmail($email,$title,$from_name,$content,$memail,$mpassword); - $iStatus = empty($aResult['status']) ? 1 : $aResult['status']; - $iIsSuccess = 2; - $sMsg = empty($aResult['data']) ? '失败' : $aResult['data']; - if($iStatus == 1){ - $iIsSuccess = 1; - $sMsg = '成功'; - } - //记录邮件发送日志 - $aEmailLog = ['article_id' => $iArticleId,'art_rev_id' => $art_rev_id,'reviewer_id' => $reviewer_id,'type' => $type,'email' => $email,'content' => $content,'create_time' => time(),'is_success' => $iIsSuccess,'msg' => $sMsg]; - //添加邮件发送日志 - $iId = $oReviewer->addLog($aEmailLog); + //查询是否发送过邮件 + $oReviewer = new Reviewer; + if($type != 3){ + $aLog = json_decode($oReviewer->getLog(['article_id' => $iArticleId,'art_rev_id' => $art_rev_id,'reviewer_id' => $reviewer_id,'is_success' => 1,'type' => $type]),true); + $aLog = empty($aLog['data']) ? [] : $aLog['data']; + $sMsg = '邮件已发送:'.json_encode($aLog); + } + if(empty($aLog)){ + $aResult = sendEmail($email,$title,$from_name,$content,$memail,$mpassword); + $iStatus = empty($aResult['status']) ? 1 : $aResult['status']; + $iIsSuccess = 2; + $sMsg = empty($aResult['data']) ? '失败' : $aResult['data']; + if($iStatus == 1){ + $iIsSuccess = 1; + $sMsg = '成功'; } + //记录邮件发送日志 + $aEmailLog = ['article_id' => $iArticleId,'art_rev_id' => $art_rev_id,'reviewer_id' => $reviewer_id,'type' => $type,'email' => $email,'content' => $content,'create_time' => time(),'is_success' => $iIsSuccess,'msg' => $sMsg]; + //添加邮件发送日志 + $iId = $oReviewer->addLog($aEmailLog); } } + $job->delete(); //更新任务状态 $aParam = ['log_id' => $iLogId,'status' => 1,'update_time' => time(),'error' => $sMsg]; $oQueueJob->updateLog($aParam); // // 记录日志 - // \think\Log::info("RelatedArticle延迟任务执行成功: ".json_encode($data)); + file_put_contents($sLogPath,'-----------Queue job end---------'."\n\n\n",FILE_APPEND); } catch (\Exception $e) { //实例化 @@ -87,8 +91,6 @@ class SendReviewEmail $aParam = ['log_id' => $iLogId,'status' => 2,'update_time' => time(),'error' => $sMsg]; $oQueueJob->updateLog($aParam); $job->delete(); - // // 记录错误日志 - // \think\Log::error("RelatedArticle延迟任务失败: ".$e->getMessage()); }finally { gc_collect_cycles(); // 强制垃圾回收 } diff --git a/application/api/job/WechatDraft.php b/application/api/job/WechatDraft.php index d23b518..b69b78f 100644 --- a/application/api/job/WechatDraft.php +++ b/application/api/job/WechatDraft.php @@ -9,6 +9,10 @@ class WechatDraft public function fire(Job $job, $data) { + // 记录任务开始执行 + $sLogPath = ROOT_PATH.'public/queue_log/WechatDraft_'.date('Ymd').'.log'; + file_put_contents($sLogPath,'-----------Queue job started-----------' . json_encode($data)."\n",FILE_APPEND); + //获取任务ID $iLogId = 0; try { @@ -16,33 +20,33 @@ class WechatDraft //实例化 $oQueueJob = new QueueJob; $sMsg = '上传草稿箱成功'; - if(!empty($job->getRawBody())){ - $aJob = json_decode($job->getRawBody(), true); - $aParam = [ - 'job_id' => empty($aJob['id']) ? '' : $aJob['id'], - 'job_class' => get_class($this), - 'status' => 0, - 'create_time' => time(), - 'params' => json_encode($aJob, JSON_UNESCAPED_UNICODE) - ]; - $iLogId = $oQueueJob->addLog($aParam); - // 步骤1:上传素材(图片) - $iArticleId = empty($data['article_id']) ? 0 : $data['article_id']; - if (!empty($iArticleId)) { - //上传素材 - $oAiarticle = new Aiarticle; - $aResult = json_decode($oAiarticle->syncWechat($data),true); - $iStatus = empty($aResult['status']) ? 0 : $aResult['status']; - $sMsg = empty($aResult['msg']) ? '上传草稿箱失败' : $aResult['msg']; - } + + $aJob = empty($job->getRawBody()) ? [] : json_decode($job->getRawBody(), true); + $aParam = [ + 'job_id' => empty($aJob['id']) ? 'WechatDraft'.rand(100, 999) : $aJob['id'], + 'job_class' => get_class($this), + 'status' => 0, + 'create_time' => time(), + 'params' => json_encode($data, JSON_UNESCAPED_UNICODE) + ]; + $iLogId = $oQueueJob->addLog($aParam); + // 步骤1:上传素材(图片) + $iArticleId = empty($data['article_id']) ? 0 : $data['article_id']; + if (!empty($iArticleId)) { + //上传素材 + $oAiarticle = new Aiarticle; + $aResult = json_decode($oAiarticle->syncWechat($data),true); + $iStatus = empty($aResult['status']) ? 0 : $aResult['status']; + $sMsg = empty($aResult['msg']) ? '上传草稿箱失败' : $aResult['msg']; } + $job->delete(); //更新任务状态 $aParam = ['log_id' => $iLogId,'status' => 1,'update_time' => time(),'error' => $sMsg]; $oQueueJob->updateLog($aParam); // // 记录日志 - // \think\Log::info("WechatDraft-延迟任务执行成功: ".json_encode($data)); + file_put_contents($sLogPath,'-----------Queue job end---------'."\n\n\n",FILE_APPEND); } catch (\Exception $e) { //实例化 @@ -52,8 +56,6 @@ class WechatDraft $aParam = ['log_id' => $iLogId,'status' => 2,'update_time' => time(),'error' => $sMsg]; $oQueueJob->updateLog($aParam); $job->delete(); - // // 记录错误日志 - // \think\Log::error("WechatDraft-延迟任务失败: ".$e->getMessage()); }finally { gc_collect_cycles(); // 强制垃圾回收 } diff --git a/application/api/job/WechatDraftPublish.php b/application/api/job/WechatDraftPublish.php index 54d9924..cdf2c3e 100644 --- a/application/api/job/WechatDraftPublish.php +++ b/application/api/job/WechatDraftPublish.php @@ -9,6 +9,10 @@ class WechatDraftPublish public function fire(Job $job, $data) { + // 记录任务开始执行 + $sLogPath = ROOT_PATH.'public/queue_log/WechatDraftPublish_'.date('Ymd').'.log'; + file_put_contents($sLogPath,'-----------Queue job started-----------' . json_encode($data)."\n",FILE_APPEND); + //获取任务ID $iLogId = 0; try { @@ -16,33 +20,33 @@ class WechatDraftPublish //实例化 $oQueueJob = new QueueJob; $sMsg = '草稿箱发布成功'; - if(!empty($job->getRawBody())){ - $aJob = json_decode($job->getRawBody(), true); - $aParam = [ - 'job_id' => empty($aJob['id']) ? '' : $aJob['id'], - 'job_class' => get_class($this), - 'status' => 0, - 'create_time' => time(), - 'params' => json_encode($aJob, JSON_UNESCAPED_UNICODE) - ]; - $iLogId = $oQueueJob->addLog($aParam); - // 步骤1:上传素材(图片) - $iArticleId = empty($data['article_id']) ? 0 : $data['article_id']; - if (!empty($iArticleId)) { - //上传素材 - $oAiarticle = new Aiarticle; - $aResult = json_decode($oAiarticle->publishDraft($data),true); - $iStatus = empty($aResult['status']) ? 0 : $aResult['status']; - $sMsg = empty($aResult['msg']) ? '草稿箱发布失败' : $aResult['msg']; - } + + $aJob = empty($job->getRawBody()) ? [] : json_decode($job->getRawBody(), true); + $aParam = [ + 'job_id' => empty($aJob['id']) ? 'WechatDraftPublish'.rand(100, 999) : $aJob['id'], + 'job_class' => get_class($this), + 'status' => 0, + 'create_time' => time(), + 'params' => json_encode($data, JSON_UNESCAPED_UNICODE) + ]; + $iLogId = $oQueueJob->addLog($aParam); + // 步骤1:上传素材(图片) + $iArticleId = empty($data['article_id']) ? 0 : $data['article_id']; + if (!empty($iArticleId)) { + //上传素材 + $oAiarticle = new Aiarticle; + $aResult = json_decode($oAiarticle->publishDraft($data),true); + $iStatus = empty($aResult['status']) ? 0 : $aResult['status']; + $sMsg = empty($aResult['msg']) ? '草稿箱发布失败' : $aResult['msg']; } + $job->delete(); //更新任务状态 $aParam = ['log_id' => $iLogId,'status' => 1,'update_time' => time(),'error' => $sMsg]; $oQueueJob->updateLog($aParam); // // 记录日志 - // \think\Log::info("WechatDraft-延迟任务执行成功: ".json_encode($data)); + file_put_contents($sLogPath,'-----------Queue job end-----------' . json_encode($data)."\n\n\n",FILE_APPEND); } catch (\Exception $e) { //实例化 @@ -52,8 +56,6 @@ class WechatDraftPublish $aParam = ['log_id' => $iLogId,'status' => 2,'update_time' => time(),'error' => $sMsg]; $oQueueJob->updateLog($aParam); $job->delete(); - // // 记录错误日志 - // \think\Log::error("WechatDraft-延迟任务失败: ".$e->getMessage()); }finally { gc_collect_cycles(); // 强制垃圾回收 } diff --git a/application/api/job/WechatMaterial.php b/application/api/job/WechatMaterial.php index cd681b3..c7a0c28 100644 --- a/application/api/job/WechatMaterial.php +++ b/application/api/job/WechatMaterial.php @@ -9,6 +9,10 @@ class WechatMaterial public function fire(Job $job, $data) { + // 记录任务开始执行 + $sLogPath = ROOT_PATH.'public/queue_log/WechatMaterial_'.date('Ymd').'.log'; + file_put_contents($sLogPath,'-----------Queue job started-----------' . json_encode($data)."\n",FILE_APPEND); + //获取任务ID $iLogId = 0; try { @@ -16,26 +20,26 @@ class WechatMaterial //实例化 $oQueueJob = new QueueJob; $sMsg = '上传素材成功'; - if(!empty($job->getRawBody())){ - $aJob = json_decode($job->getRawBody(), true); - $aParam = [ - 'job_id' => empty($aJob['id']) ? '' : $aJob['id'], - 'job_class' => get_class($this), - 'status' => 0, - 'create_time' => time(), - 'params' => json_encode($aJob, JSON_UNESCAPED_UNICODE) - ]; - $iLogId = $oQueueJob->addLog($aParam); - // 步骤1:上传素材(图片) - $iArticleId = empty($data['article_id']) ? 0 : $data['article_id']; - if (!empty($iArticleId)) { - //上传素材 - $oAiarticle = new Aiarticle; - $aResult = json_decode($oAiarticle->uploadMaterial($data),true); - $iStatus = empty($aResult['status']) ? 0 : $aResult['status']; - $sMsg = empty($aResult['msg']) ? '上传素材失败' : $aResult['msg']; - } + + $aJob = empty($job->getRawBody()) ? [] : json_decode($job->getRawBody(), true); + $aParam = [ + 'job_id' => empty($aJob['id']) ? 'WechatMaterial'.rand(100, 999) : $aJob['id'], + 'job_class' => get_class($this), + 'status' => 0, + 'create_time' => time(), + 'params' => json_encode($data, JSON_UNESCAPED_UNICODE) + ]; + $iLogId = $oQueueJob->addLog($aParam); + // 步骤1:上传素材(图片) + $iArticleId = empty($data['article_id']) ? 0 : $data['article_id']; + if (!empty($iArticleId)) { + //上传素材 + $oAiarticle = new Aiarticle; + $aResult = json_decode($oAiarticle->uploadMaterial($data),true); + $iStatus = empty($aResult['status']) ? 0 : $aResult['status']; + $sMsg = empty($aResult['msg']) ? '上传素材失败' : $aResult['msg']; } + $job->delete(); //更新任务状态 @@ -43,7 +47,7 @@ class WechatMaterial $oQueueJob->updateLog($aParam); // // 记录日志 - // \think\Log::info("WechatMaterial-延迟任务执行成功: ".json_encode($data)); + file_put_contents($sLogPath,'-----------Queue job end-----------' . json_encode($data)."\n\n\n",FILE_APPEND); } catch (\Exception $e) { //实例化 @@ -54,8 +58,6 @@ class WechatMaterial $oQueueJob->updateLog($aParam); $job->delete(); - // // 记录错误日志 - // \think\Log::error("WechatMaterial-延迟任务失败: ".$e->getMessage()); }finally { gc_collect_cycles(); // 强制垃圾回收 } diff --git a/application/api/job/WechatQueryStatus.php b/application/api/job/WechatQueryStatus.php index 3a1d821..4cb442b 100644 --- a/application/api/job/WechatQueryStatus.php +++ b/application/api/job/WechatQueryStatus.php @@ -9,39 +9,43 @@ class WechatQueryStatus public function fire(Job $job, $data) { + // 记录任务开始执行 + $sLogPath = ROOT_PATH.'public/queue_log/WechatQueryStatus_'.date('Ymd').'.log'; + file_put_contents($sLogPath,'-----------Queue job started-----------' . json_encode($data)."\n",FILE_APPEND); + //获取任务ID $iLogId = 0; try { //实例化 $oQueueJob = new QueueJob; $sMsg = '查询草稿箱文章发布状态成功'; - if(!empty($job->getRawBody())){ - $aJob = json_decode($job->getRawBody(), true); - $aParam = [ - 'job_id' => empty($aJob['id']) ? '' : $aJob['id'], - 'job_class' => get_class($this), - 'status' => 0, - 'create_time' => time(), - 'params' => json_encode($aJob, JSON_UNESCAPED_UNICODE) - ]; - $iLogId = $oQueueJob->addLog($aParam); - // 步骤1:上传素材(图片) - $iArticleId = empty($data['article_id']) ? 0 : $data['article_id']; - if (!empty($iArticleId)) { - //上传素材 - $oAiarticle = new Aiarticle; - $aResult = json_decode($oAiarticle->queryStatus($data),true); - $iStatus = empty($aResult['status']) ? 0 : $aResult['status']; - $sMsg = empty($aResult['msg']) ? '上传草稿箱失败' : $aResult['msg']; - } + + $aJob = empty($job->getRawBody()) ? [] : json_decode($job->getRawBody(), true); + $aParam = [ + 'job_id' => empty($aJob['id']) ? 'WechatQueryStatus'.rand(100, 999) : $aJob['id'], + 'job_class' => get_class($this), + 'status' => 0, + 'create_time' => time(), + 'params' => json_encode($data, JSON_UNESCAPED_UNICODE) + ]; + $iLogId = $oQueueJob->addLog($aParam); + // 步骤1:上传素材(图片) + $iArticleId = empty($data['article_id']) ? 0 : $data['article_id']; + if (!empty($iArticleId)) { + //上传素材 + $oAiarticle = new Aiarticle; + $aResult = json_decode($oAiarticle->queryStatus($data),true); + $iStatus = empty($aResult['status']) ? 0 : $aResult['status']; + $sMsg = empty($aResult['msg']) ? '上传草稿箱失败' : $aResult['msg']; } + $job->delete(); //更新任务状态 $aParam = ['log_id' => $iLogId,'status' => 1,'update_time' => time(),'error' => $sMsg]; $oQueueJob->updateLog($aParam); - // // 记录日志 - // \think\Log::info("WechatQueryStatus延迟任务执行成功: ".json_encode($data)); + // // 记录错误日志 + file_put_contents($sLogPath,'-----------Queue job end-----------' . json_encode($data)."\n\n\n",FILE_APPEND); } catch (\Exception $e) { //实例化 @@ -51,8 +55,6 @@ class WechatQueryStatus $aParam = ['log_id' => $iLogId,'status' => 2,'update_time' => time(),'error' => $sMsg]; $oQueueJob->updateLog($aParam); $job->delete(); - // // 记录错误日志 - // \think\Log::error("WechatQueryStatus延迟任务失败: ".$e->getMessage()); }finally { gc_collect_cycles(); // 强制垃圾回收 }