2014-01-29 5 views
0

Я запускаю приложение для рельсов в Heroku, где я использую Rufus Scheduler.Как избежать планирования планировщика Rufus столько раз, сколько нет.

Мое приложение использует более одного и планировщик работает на каждом , а не только один, так что мои запланированные события стрельбы несколько раз (один раз для каждого).

Как я могу избежать этого?

ответ

2

Вы должны добавить новый тип процесса в вашем Procfile, который работает ваш процесс планировщика Руфус:

web: unicorn -c app/config/unicorn.rb ... # Your existing web dyno process 
scheduler: rake rufus:scheduler # Add rake task for rufus scheduler process 

Вы можете использовать heroku ps:scale установить один планировщик дино и N веб динамометрические стенды.

EDIT

У вас есть приложение Rails, который в настоящее время содержит ваш Руфус планировщик. Когда вы развертываете это приложение в Heroku, ваш Rails-код приложения и необходимые библиотеки устанавливаются на каждом дино (через один или несколько buildpacks). Dyno - это виртуальная машина, которая запускает процесс в вашем приложении.

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

+0

где я должен хранить свой файл rufus: scheduler. В настоящее время я использую планировщик rufus в config/initializer. так это хорошо или мне нужно взять это из планировщика и сохранить в отдельном файле? – logesh

+0

Я добавлю объяснение того, как работает приложение rails на Heroku. – Winfield

+0

И мне нужна еще одна помощь. Я не могу подтолкнуть свои изменения к герою, и он заявляет: «Слишком много запросов для этого Git-репо. Повторите попытку позже». Я читал об этом в центре геройку, но не смог найти решение. – logesh