34 lines
947 B
PHP
34 lines
947 B
PHP
<?php
|
|
|
|
namespace App\Jobs;
|
|
|
|
use App\Service\MaterialService;
|
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
|
use Illuminate\Foundation\Queue\Queueable;
|
|
|
|
/**
|
|
* 引用扫描任务
|
|
*
|
|
* 与接口版调的是同一个 Service 方法。留这个 Job 是为了以后能挂定时(比如每天夜里扫一次):
|
|
* ref_count 越新,回收判断越准,靠人记得点按钮迟早会漏。
|
|
* 这里不改任何队列配置,默认驱动下 dispatch 等于同步执行。
|
|
*/
|
|
class ScanMediaReferencesJob implements ShouldQueue
|
|
{
|
|
use Queueable;
|
|
|
|
/**
|
|
* @param array $params 预留给 MaterialService::scanReferences 的扫描参数
|
|
*/
|
|
public function __construct(public array $params = [])
|
|
{
|
|
}
|
|
|
|
public function handle(): void
|
|
{
|
|
// 全库逐表逐字段扫,默认 30 秒执行时限根本不够
|
|
cc_set_time_limit();
|
|
MaterialService::getInstance()->scanReferences($this->params);
|
|
}
|
|
}
|