Пытаетесь установить TorqueBox Backgroundable параллелизм, но не похоже, что он работает? - PullRequest
1 голос
/ 08 июля 2011

Итак, я пытаюсь использовать дескрипторы развертывания в TorqueBox, имея файл (в моем приложении rails) в конфигурации с именем Torquebox.yml

Сам файл содержит:

---
application:
  root: /usr/local/labs/live_management
  env: development

tasks:
  Backgroundable:
      concurrency: 9

Что, насколько я могу судить, верно.

Тем не менее, я не знаю, что этот файл должен делать ... Когда я делаю Rake Torquebox: развернуть его LOOKS, как будто он все еще записывает файл app_name-knob.yml по умолчанию в каталог Torbox, которыйНЕ содержит моих дескрипторов параллелизма, и в документации сказано, что внешний файл имеет приоритет.

При этом выясняется, что одновременно я могу иметь только ОДНУ фоновую задачу.

Так что япопытался скопировать мой файл momentbox.yml в каталог приложения Torquebox, переименовав его в файл app_name-knob.yml.

Это выручает, потому что теперь у меня ДВА фоновых задач за раз (хотя яуказано 9).

Что я делаю не так?Мой файл неверен, некоторые как?Может ли Torquebox иметь только 2 фоновые задачи?

Как правильно использовать Torquebox.yml в качестве внутреннего дескриптора?

1 Ответ

2 голосов
/ 13 июля 2011

Ты почти у цели.Проблема связана с тем, как TorqueBox настраивает свои пулы времени выполнения интерпретаторов Ruby.В среде development , которую вы указали в своем внутреннем дескрипторе, пул времени выполнения обмена сообщениями по умолчанию имеет максимум 2, поэтому независимо от настроек параллелизма максимальное количество одновременных задач, которое вы когда-либо увидитеBackground равно 2.

В среде production пул по умолчанию - shared , что означает, что одна и та же среда выполнения используется совместно, однако многие потоки пытаются использовать ее вcase, максимум 9. Так что либо установите вашу переменную env в production , либо добавьте элемент пулов в ваш дескриптор, чтобы принудительно использовать его совместно.Например,

---
application:
  root: /usr/local/labs/live_management
  env: development

tasks:
  Backgroundable:
      concurrency: 9

pooling:
  messaging: shared

Кстати, значения из ваших внешних и внутренних дескрипторов объединяются, причем внешний имеет приоритет для любых общих ключей между ними.Итак, вы делали это правильно.

Для получения дополнительной информации, http://torquebox.org/documentation/1.0.1/pooling.html

...