41 lines
987 B
PHP
41 lines
987 B
PHP
<?php
|
|
|
|
namespace app\queue\redis;
|
|
|
|
use app\queue\jobs\TranslationJob;
|
|
use support\Log;
|
|
use Webman\RedisQueue\Consumer;
|
|
|
|
class Translator implements Consumer
|
|
{
|
|
// 要消费的队列名
|
|
public $queue = 'translator';
|
|
|
|
// 连接名,对应 plugin/webman/redis-queue/redis.php 里的连接`
|
|
public $connection = 'default';
|
|
|
|
// 消费
|
|
public function consume($data)
|
|
{
|
|
try {
|
|
// 无需反序列化
|
|
// var_export($data); // 输出 ['to' => 'tom@gmail.com', 'content' => 'hello']
|
|
|
|
$job = new TranslationJob($data);
|
|
$job->handle();
|
|
} catch (\Throwable $e) {
|
|
Log::error("TranslationService 异步任务异常: ".$e->getMessage());
|
|
}
|
|
|
|
}
|
|
|
|
// 消费失败回调
|
|
public function onConsumeFailure(\Throwable $e, $package)
|
|
{
|
|
echo "consume failure translator\n";
|
|
echo $e->getMessage() . "\n";
|
|
// 无需反序列化
|
|
var_export($package);
|
|
}
|
|
}
|