自动查重

This commit is contained in:
wangjinlei
2026-05-20 11:58:10 +08:00
parent 53e6ddbd9e
commit cfa3f791f4
11 changed files with 938 additions and 58 deletions

View File

@@ -23,16 +23,16 @@ class PlagiarismPoll
public function fire(Job $job, $data)
{
// $checkId = isset($data['check_id']) ? intval($data['check_id']) : 0;
// $attempt = isset($data['attempt']) ? intval($data['attempt']) : 1;
//
// if ($checkId <= 0) {
// $job->delete();
// return;
// }
$checkId = isset($data['check_id']) ? intval($data['check_id']) : 0;
$attempt = isset($data['attempt']) ? intval($data['attempt']) : 1;
if ($checkId <= 0) {
$job->delete();
return;
}
$svc = new PlagiarismService();
$svc->log("PlagiarismPoll job is running");
// $svc->runPollStatus($checkId, $attempt);
$svc->runPollStatus($checkId, $attempt);
$job->delete();
}
}

View File

@@ -0,0 +1,35 @@
<?php
namespace app\api\job;
use think\queue\Job;
use app\common\UserFieldAiService;
/**
* 链式任务:为单个用户生成 field_ai完成后自动入队下一位用户。
*
* data:
* - user_id 当前处理的用户
* - queue 队列名(默认 UserFieldAi
* - force 1=强制重算
*
* Worker: php think queue:work --queue UserFieldAi
*/
class UserFieldAiFill
{
public function fire(Job $job, $data)
{
$userId = isset($data['user_id']) ? intval($data['user_id']) : 0;
$queue = isset($data['queue']) ? (string) $data['queue'] : UserFieldAiService::QUEUE_NAME;
$force = !empty($data['force']);
$svc = new UserFieldAiService();
if ($userId > 0) {
$svc->processUser($userId, $force);
}
$job->delete();
$delay = max(0, (int) (isset($data['delay']) ? $data['delay'] : 1));
$svc->enqueueNextFieldAi($delay, $queue, $userId, $force);
}
}