@tfanialn

Laravel очереди на другом сервере?

Суть вопроса есть проект на Laravel на сервере с Ubuntu. Есть очереди в них много заданий, задания долго выполняются медленно соответенно если запущенно много workeroв сервер начинает висеть. Есть огромное желание перенести эти job-ы на другой сервер чтобы они не мешали основному а работали там. При этом не хочется на втором сервере делать полноценное приложение. Нужно как-то просто организовать процесс то есть основной сервер создает job его выполняет другой сервер и записывает то что надо в БД. Так же не хочется сильно разносить код приложения по двум серверам желатьно чтобы код был един. Надеюсь понятно.
  • Вопрос задан
  • 227 просмотров
Решения вопроса 1
Sanasol
@Sanasol Куратор тега Laravel
нельзя просто так взять и загуглить ошибку
Так джоб может использовать всё что угодно чтобы выполниться, как вы хотите чтобы это работало без кода? Если нужен сервис какой-нибудь, модель из базы достать, в базу сохранить и т.д.

Чтобы поднять очереди на другом сервере надо настроить общий редис и общую базу, тогда джобы будут балансироваться между серверами.

Но деплоить надо полноценно приложение на оба сервера.

Можно конечно сделать отдельные консюмеры на отдельном сервере чтобы там чисто один скрипт лежал, но это и будет работать вне ларавела полностью. Т.е. не сможете использовать сервисы, eloquent, модели и всё остальное из ларавела. В чем смысл.

Пора изучить деплой на несколько серверов. А точнее в принципе деплой автоматический поднять, а сколько там серверов надо развернуть ему пофиг.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
AmdY
@AmdY
PHP и прочие вебштучки
На самом деле, джобы и должны запускаться в отдельных контейнерах. Взаимодействие идёт через кроликак и БД. При чём это может быть один и тот же монолит, не обязательно делить на микросервисы, все равно контейнеры с очередями не смотрят в веб через вебсервис.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы