一处原文引用20多个参考文献优化
This commit is contained in:
@@ -837,7 +837,10 @@ class ReferenceRelevanceCheckService
|
||||
/**
|
||||
* 修复卡住队列:已完成但 queue 未同步;长时间 RUNNING 回退为待执行
|
||||
*/
|
||||
public function recoverQueueRowsForArticle($pArticleId)
|
||||
/**
|
||||
* @param bool $forceRunning 为 true 时立即回收本篇仍为 RUNNING 的 pending 行(断点续跑用),不再等 10 分钟
|
||||
*/
|
||||
public function recoverQueueRowsForArticle($pArticleId, $forceRunning = false)
|
||||
{
|
||||
$pArticleId = intval($pArticleId);
|
||||
if ($pArticleId <= 0) {
|
||||
@@ -853,17 +856,19 @@ class ReferenceRelevanceCheckService
|
||||
'queue_status' => self::QUEUE_COMPLETED,
|
||||
'updated_at' => $now,
|
||||
]);
|
||||
// 仅回收“长时间未更新”的 RUNNING,避免多消费者并发时把正在执行的任务误回退成 PENDING
|
||||
$runningStaleBefore = date('Y-m-d H:i:s', time() - 600);
|
||||
Db::name('article_reference_relevance_check_result')
|
||||
// 默认仅回收“长时间未更新”的 RUNNING;force 时立刻回退,从卡死条继续
|
||||
$runningQuery = Db::name('article_reference_relevance_check_result')
|
||||
->where('p_article_id', $pArticleId)
|
||||
->where('queue_status', self::QUEUE_RUNNING)
|
||||
->where('status', self::RECORD_PENDING)
|
||||
->where('updated_at', '<', $runningStaleBefore)
|
||||
->update([
|
||||
'queue_status' => self::QUEUE_PENDING,
|
||||
'updated_at' => $now,
|
||||
]);
|
||||
->where('status', self::RECORD_PENDING);
|
||||
if (!$forceRunning) {
|
||||
$runningStaleBefore = date('Y-m-d H:i:s', time() - 600);
|
||||
$runningQuery->where('updated_at', '<', $runningStaleBefore);
|
||||
}
|
||||
$runningQuery->update([
|
||||
'queue_status' => self::QUEUE_PENDING,
|
||||
'updated_at' => $now,
|
||||
]);
|
||||
$staleBefore = date('Y-m-d H:i:s', time() - 600);
|
||||
Db::name('article_reference_relevance_check_result')
|
||||
->where('p_article_id', $pArticleId)
|
||||
|
||||
Reference in New Issue
Block a user