39 lines
1.1 KiB
PHP
39 lines
1.1 KiB
PHP
<?php
|
||
|
||
namespace app\api\job;
|
||
|
||
use think\queue\Job;
|
||
use app\common\ExpertFieldAiService;
|
||
|
||
/**
|
||
* Expert field_ai 链式任务(阶段1:邮箱关联 user.field_ai)
|
||
*
|
||
* data:
|
||
* - expert_id
|
||
* - queue 队列名,默认 ExpertFieldAi
|
||
* - force 1=强制重算
|
||
* - mode link(默认)
|
||
*
|
||
* Worker: php think queue:work --queue ExpertFieldAi
|
||
*/
|
||
class ExpertFieldAiFill
|
||
{
|
||
public function fire(Job $job, $data)
|
||
{
|
||
$expertId = isset($data['expert_id']) ? intval($data['expert_id']) : 0;
|
||
$queue = isset($data['queue']) ? (string)$data['queue'] : ExpertFieldAiService::QUEUE_NAME;
|
||
$force = !empty($data['force']);
|
||
$mode = isset($data['mode']) ? (string)$data['mode'] : 'link';
|
||
|
||
$svc = new ExpertFieldAiService();
|
||
if ($expertId > 0 && $mode === 'link') {
|
||
$svc->linkFromUser($expertId, $force);
|
||
}
|
||
|
||
$job->delete();
|
||
|
||
$delay = max(0, (int)(isset($data['delay']) ? $data['delay'] : 1));
|
||
$svc->enqueueNextLink($delay, $queue, $expertId, $force);
|
||
}
|
||
}
|