30 lines
873 B
PHP
30 lines
873 B
PHP
<?php
|
|
|
|
namespace app\api\job;
|
|
|
|
use think\queue\Job;
|
|
use app\common\ExpertFinderService;
|
|
|
|
/**
|
|
* 专家抓取队列任务
|
|
* 注意:此任务推送到队列名 "FetchExperts",必须单独启动 worker 才会执行:
|
|
* php think queue:listen --queue FetchExperts
|
|
* 若只运行 queue:listen 不指定队列,默认只消费 "mail",本任务不会被执行。
|
|
*/
|
|
class FetchExperts
|
|
{
|
|
public function fire(Job $job, $data)
|
|
{
|
|
$field = isset($data['field']) ? $data['field'] : '';
|
|
$service = new ExpertFinderService();
|
|
$service->doFetchForField(
|
|
$field,
|
|
isset($data['source']) ? $data['source'] : 'pubmed',
|
|
isset($data['per_page']) ? intval($data['per_page']) : 100,
|
|
isset($data['min_year']) ? $data['min_year'] : null
|
|
);
|
|
|
|
$job->delete();
|
|
}
|
|
}
|