2016-06-25 2 views
1

Я работаю над аспектом ведения журнала приложения Laravel, amd планировал отправить данные в SQS для последующего извлечения. Тем не менее, я хотел бы отправить задание с моего рабочего сервера в очередь AWS, но затем у вас очередь работает на отдельном сервере регистрации, который слушает очередь.Laravel - Работа, отправленная на один сервер, обрабатывается на другом

Я понимаю, как настроить работника очереди для прослушивания очереди, однако задания Ларавеля - это самостоятельная работа. Поэтому, когда рабочий на сервере регистрации получает сообщение от SQS, он будет искать задание в том же пространстве имен (с тем же именем класса) для его обработки. Есть ли способ справиться с этим по-другому или просто нужно просто назвать обработчик заданий на сервере ведения журнала, такой же, как диспетчер заданий на сервере Production.

ответ

1

Вы можете создавать разные очереди для каждого конкретного сервера и отправлять каждое задание на одном из них в зависимости от того, где они должны быть выполнены.

В принципе, это как нажать на работу по определенной очереди:

$job = (new SendReminderEmail($user))->onQueue('emails'); 

А вот команда на работу процесса из определенной очереди:

php artisan queue:listen --queue=emails 

Надеется, что это помогает

+0

Да, я понимаю эту часть. Это обработка задания на сервере регистрации, о котором им интересно. По вашей электронной почте кажется, что если бы у моего производственного кода было задание «SendReminderEmail», то моему серверу регистрации (который работает в очереди) понадобилось бы задание «SendReminderEmail», чтобы оно было неявно обработано. Это точно? – djt

+0

В основном, laravel сериализует объект Job перед тем, как нажимать на провайдера очереди, а затем на другом конце он воссоздает исходный объект, используя сериализованные данные и определение класса. Так что да, он должен иметь тот же самый класс на обоих серверах. – Atrakeur

+0

Я вижу. Это кажется неудачным. Как люди обычно справляются с этим? Я бы не хотел дублировать весь производственный репо на сервере регистрации, так как это были бы тонны ненужного раздувания. – djt