Обзор
У меня есть RailJ ActiveJob, который использует гем activejob-google_cloud_pubsub . ( Краткое руководство по использованию ). Мое приложение развернуто в AppEngine в гибкой среде ruby. Хотя мое приложение работает должным образом, у меня возникают трудности с масштабированием рабочих служб, которые используют сообщения из Google Cloud PubSub. В документах README для гемов указан способ указать max_threads работника из терминала, но не из приложения rails. Когда я читаю исходный код драгоценного камня, я вижу, что initialize
для работника принимает эту переменную max_threads
(которая по умолчанию равна числу ядер). Проблема в том, что я не вижу, как инициализировать рабочий с конфигурацией по умолчанию, чтобы я мог увеличить номер потока.
Сводка вопросов:
1 - Как инициализировать activejob-google_cloud_pubsub
Работник с большим числом потоков?
2 - Было бы нежелательно инициализировать работника с большим количеством потоков, чем процессоров в машине?
Прочие сведения:
- Я развертываю работника в отдельной службе от сервера Rails с помощью worker.yaml, кроме app.yaml
- Служба работника масштабируется вручную до 3 экземпляров, однако при этом всего лишь обрабатываются 10 сообщений. в секунду (обработчик обедненных сообщений, только журнал для вывода и возврата)
Любой вклад в то, как я могу масштабировать этот тип обработки очереди, будет полезен.