Files
tougao/application/api/job/FillExpertCountry.php
wangjinlei e9a354c663 1
2026-04-16 16:16:08 +08:00

40 lines
1.1 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
namespace app\api\job;
use think\queue\Job;
use app\common\ExpertFinderService;
/**
* 队列任务:用本地大模型从 affiliation 推断国家,写入 expert.country_id / country。
* 处理完当前专家后,自动找下一个推入队列(链式执行),直到全部处理完。
*
* 队列名FetchExperts
* 启动 workerphp think queue:listen --queue FetchExperts
*/
class FillExpertCountry
{
public function fire(Job $job, $data)
{
$expertId = intval(isset($data['expert_id']) ? $data['expert_id'] : 0);
$affiliation = isset($data['affiliation']) ? trim((string)$data['affiliation']) : '';
$service = new ExpertFinderService();
if ($expertId && $affiliation !== '') {
try {
$service->fillExpertCountry($expertId, $affiliation);
} catch (\Exception $e) {
$service->log('[FillExpertCountry] expert_id=' . $expertId . ' exception=' . $e->getMessage());
}
}
$job->delete();
$service->enqueueNextCountryFill(1);
}
}