2013-02-10 3 views
1

У меня есть профайл на моей системе Heroku, разработанный, чтобы позволить мне масштабировать работников. Проблема заключается в том, что я хочу, чтобы работники не знали о них на момент написания. Т.е. я не могу их жестко закодировать.Rails/Heroku ... Могу ли я изменить программный файл программно?

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

Все примеры файла proc имеют три разные очереди: «обычный», «приоритет». То, что я хочу, это разные очереди на каждого клиента. «client_1», «client_2», «client_3» ....

Я полагаю, что я мог бы создать профайл с 2000 записями ... но это кажется уродливым.

Хорошо, поэтому мой вопрос.
Могу ли я, чтобы мое приложение rails изменяло procfile во время выполнения? Добавить новые линии для учета новых клиентов?

ответ

1

Нет, Heroku не поддерживает динамическое определение новых типов процессов.

Однако вы уверены, что это действительно то, что вы хотите сделать? Почему каждому клиенту нужна другая очередь? Если вы оставите рабочий процесс запущенным, он будет выполнять задания для любого клиента, который их запрашивает. Если вы пытаетесь изолировать клиентские среды, возможно, несколько приложений - лучшее решение?

+0

Мое приложение представляет собой большой хранилище данных. Если клиент X редактирует 100 тыс. Записей, а клиент Y редактирует 100 записей. Клиенту Y не нужно ждать, пока клиент X завершит свою задачу. Идея сегментации привела бы к поддержанию более 1000 приложений. Это не привлекательно. Я могу представить себе усилия, необходимые для обновления приложений – baash05

+0

ps, ​​что на прошлой неделе произошло 100 тыс. Против 100 записей (хорошо 87k против 126), и в настоящее время у меня есть три клиента. Клиент Y был недоволен, так как они ожидали, что 126 записей займут меньше часа :) – baash05

+0

Gotcha. В этом случае, возможно, использование дополнения в стиле Hadoop может помочь решить проблему. Что-то вроде https://addons.heroku.com/treasure-data? – Dominic

0

Heroku имеет платформу API https://devcenter.heroku.com/articles/platform-api-reference

, которые могли бы сделать то, что вы хотите. Я еще не пробовал, но конечные точки Formation и Dyno, похоже, могут быть напрямую обработаны во время выполнения.