Подтвердить что ты не робот

Как создать рабочих сельдерея на отдельных машинах?

Я новичок в celery.I знаю, как установить и запустить один сервер, но мне нужно распределить задачу на несколько машин. Мой проект использует сельдерей для назначения пользовательских запросов, передаваемых в веб-фрейм, на разные машины, а затем возвращает результат. Я прочитал документацию, но там не упоминается, как настроить несколько машин. Что мне не хватает?

4b9b3361

Ответ 1

Я понимаю, что ваше приложение будет отправлять запросы в систему очередей (например, rabbitMQ), а затем вы можете запустить любое количество рабочих на разных компьютерах (с доступом к тому же коду, что и приложение, которое отправило задание). Они будут выбирать задачи из очереди сообщений, а затем работать с ними. Как только они будут завершены, они обновят базу данных надгробных камней.

В результате этого вам не нужно делать что-либо особенное, чтобы начинать работу нескольких сотрудников. Просто запустите их на отдельных одинаковых (одинаковых исходных дерева) машинах.

Сервер, который имеет очередь сообщений, не обязательно должен быть таким же, как тот, который есть у рабочих, и не должен быть таким же, как машины, которые представляют задания. Вам просто нужно поместить местоположение очереди сообщений в ваш celeryconfig.py, и все рабочие на всех машинах могут получать задания из очереди для выполнения задач.

Ответ 2

Способ, которым я был развернут, выглядит следующим образом:

  • клонировать ваш проект django на экземпляре heroku (это запустит интерфейс)
  • добавить RabitMQ в качестве добавления и настроить его
  • клонировать проект django в другой экземпляр heroku (назовите его как рабочий), где вы будете запускать задачи celery