add
This commit is contained in:
30
app/queue/BaseQueue.php
Normal file
30
app/queue/BaseQueue.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?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);
|
||||
}
|
||||
Reference in New Issue
Block a user