Я пишу собственный драйвер очереди Laravel 5.5 для взаимодействия с MQTT.Я использую расширение Mosquitto MQTT .
Не так много документации о том, как это реализовать.Я застрял в понимании ожидаемой полезной нагрузки.Когда вызывается мой метод pop()
и обрабатывается мой класс MqttJob
, я получаю сообщение об отсутствии индекса 'job'
.Я попытался взглянуть на использование различных других драйверов, включая Redis, Beanstalkd и других пользовательских драйверов, таких как Kafka и RabbitMQ , но все еще вижу, где их реализации соответствуют ожидаемой полезной нагрузке.структура.
Если у кого-то есть опыт или понимание того, как очереди, рабочие и рабочие места взаимодействуют, это будет высоко оценено.
Этот пост похож на то, что яЯ спрашиваю.
ОБНОВЛЕНИЕ Я реализовал метод getRawBody()
, как:
public function getRawBody()
{
return json_encode([
'job' => 'Illuminate\\Queue\\CallQueuedHandler@call',
'data' => [
'commandName' => get_class($this),
'command' => serialize(clone $this),
],
]);
}
Но теперь я получаю следующую ошибку:
local.ERROR: Serialization of 'Closure' is not allowed {"exception":"[object] (Exception(code: 0): Serialization of 'Closure' is not allowed
Я не уверен, какое свойство моего MqttJob
является закрытием.clone
должен выполнять поверхностное копирование, а я не реализовал метод __clone()
.