webman_duanju/app/queue/redis/BaseQueue.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);
}