2012-07-24 19 views
15

W tej chwili mam wdrożenie delayed_job, które działa idealnie w moim lokalnym środowisku programistycznym. Aby uruchomić pracownika na moim komputerze, po prostu działa rake jobs:work i działa idealnie.Działający pracownik lateed_job na Heroku?

Aby uzyskać delayed_job do pracy na Heroku, używam prawie tego samego polecenia: heroku run rake jobs:work. To rozwiązanie działa, nie muszę płacić nic za koszty pracy dla Heroku, ale muszę zachować otwarte okno wiersza polecenia, albo też pracownik delayed_job zatrzymuje się, gdy go zamykam. Czy istnieje polecenie, aby na stałe zatrzymać działanie tego pracownika delayed_job nawet po zamknięciu okna poleceń? Czy istnieje inny lepszy sposób na rozwiązanie tego problemu?

Odpowiedz

9

Dodaj

worker: rake jobs:work 

do Procfile.

EDIT:

Nawet jeśli go uruchomić z konsoli ty 'kupić' pracownik dyno ale Heroku ma za drugim Biling. Więc nie płacisz, bo masz 750h za darmo, a miesiąc w najgorszym przypadku 744h, więc masz wolne 6h na dodatkowe dynamo, zadania harmonogramu i tak dalej.

+2

Dokumentacja jest tutaj: https://devcenter.heroku.com/articles/delayed-job – zsquare

+5

Nawet jeśli uruchomisz ją ze swojej konsoli, kupisz dyna robotnika, ale Heroku na sekundę bilinguje, więc nie płacisz, bo masz 750h za darmo, a miesiąc w najgorszym przypadku 744h, więc masz wolne 6h na dodatkowe hamburgery, zadania planisty i tak n. – Hauleth

13

Polecam workless gem, aby uruchomić opóźnione zadania na heroku. Używam tego teraz - działa to idealnie dla mnie, zero kłopotów i bez kosztów.

Użyłem również hirefireapp, który zapewnia znacznie lepszą kontrolę nad skalowaniem pracowników. To kosztuje, ale kosztuje mniej niż jeden pracownik Heroku (ponad miesiąc). Nie używam tego teraz, ale użyłem go i działało bardzo dobrze.

+0

Zainstalowałem bez pracy i skonfigurowałem zmienne heroku. Co mam teraz zrobić? Wygląda na to, że nie działa. –

+0

czy dodałeś konfigurację (zakładając, że jesteś na cedrze)? config.after_initialize zrobić Opóźnione :: Job.scaler =: heroku_cedar koniec –

+0

@DamonMannion +5 dla ciebie na tej odpowiedzi – Kashiftufail

0

Korzystanie z konsoli heroku, aby zachęcić pracowników do pracy, spowoduje jedynie utworzenie tymczasowego urządzenia do pracy. Aby utrzymać zadania bez cli, musisz wprowadzić polecenie do pliku Procfile, jak zasugerował @Lucaksz.

Po wdrożeniu, trzeba także przeskalować formacji hamowni, jak Heroku trzeba wiedzieć ile hamownia należy umieścić na rodzaj procesu jak ten: Heroku ps: skala pracownik = 1

Więcej szczegółów można przeczytać tutaj: https://devcenter.heroku.com/articles/scaling