36 lines
873 B
PHP
36 lines
873 B
PHP
<?php
|
|
|
|
namespace app\queue\redis;
|
|
|
|
|
|
use support\Log;
|
|
use Webman\RedisQueue\Consumer;
|
|
|
|
abstract class BaseQueue
|
|
{
|
|
public $queue;
|
|
public $connection = 'default';
|
|
|
|
public function __construct()
|
|
{
|
|
$this->queue = class_basename(static::class);
|
|
}
|
|
|
|
public function consume( $data)
|
|
{
|
|
$start = microtime(true);
|
|
Log::info("消息队列接收到消息,当前队列: ".self::class.", 携带数据: ".json_encode($data));
|
|
$this->run($data);
|
|
$end = microtime(true);
|
|
Log::info("消息队列执行完毕, 耗时:" . ($end - $start) . 's');
|
|
}
|
|
|
|
public function onConsumeFailure(\Throwable $e, $package)
|
|
{
|
|
Log::error("消息队列执行异常:" . $e->getMessage());
|
|
Log::info($e->getTraceAsString());
|
|
}
|
|
|
|
// 子类实现具体逻辑
|
|
abstract public function run($data);
|
|
} |