Files
webman_duanju/app/queue/BaseQueue.php
2025-08-14 17:19:26 +08:00

30 lines
874 B
PHP

<?php
namespace app\queue;
use think\facade\Log;
use think\queue\Job;
abstract class BaseQueue
{
public function fire(Job $job, $data)
{
$start = microtime(true);
try {
Log::info("消息队列接收到消息,当前队列: ".self::class.", 携带数据: ".json_encode($data));
$this->run($job, $data);
Log::info("消息队列执行成功:" . static::class);
$job->delete();
} catch (\Throwable $e) {
Log::error("消息队列执行异常:" . $e->getMessage());
Log::info($e->getTraceAsString());
$job->release(10); // 或 $job->fail()
}
$end = microtime(true);
Log::info("消息队列执行完毕, 耗时:" . ($end - $start) . 's');
}
// 子类实现具体逻辑
abstract public function run(Job $job, $data);
}