Z powodzeniem używam resque na stosie cedru heroku i montuję interfejs na szynach.Resque na stosie cedru Heroku Licznik pracownika wciąż istnieje po zakończeniu pracy przez pracownika
kiedy uruchamiam pracownika, wszystko działa poprawnie. Pracownik przetwarza zadanie. Ale kiedy zabiję pracownika, Resque nadal uważa, że pracownik jest dostępny. Kiedy zaczynam innego pracownika, wtedy wydaje mi się, że jest 2 pracowników, ale w rzeczywistości jest tylko jeden uruchomiony.
Zauważam tu również formularz http://devcenter.heroku.com/articles/ps, że heroku wysyła SIGTERM po zabiciu pracownika, a jeśli to się nie kończy, wysyła SIGKILL.
tutaj jest mój pracownik loguje
2011-08-11T02:32:45+00:00 heroku[worker.1]: Starting process with command `bundle exec rake resque:work QUEUE=*`
2011-08-11T02:32:46+00:00 heroku[worker.1]: State changed from starting to up
2011-08-11T02:33:58+00:00 heroku[worker.1]: State changed from up to stopping
2011-08-11T02:34:00+00:00 heroku[worker.1]: Stopping process with SIGTERM
2011-08-11T02:34:09+00:00 heroku[worker.1]: Error R12 (Exit timeout) -> Process failed to exit within 10 seconds of SIGTERM
2011-08-11T02:34:09+00:00 heroku[worker.1]: Stopping process with SIGKILL
2011-08-11T02:34:11+00:00 heroku[worker.1]: Process exited
widzę, że mój proces trwa więcej niż 10s, aby zakończyć. Czy to ma coś zrobić, ponieważ ładuję środowisko szyn w zadaniu robota?
to jest moje zadanie natarcia lib/tasks/resque.rake
require "resque/tasks"
task "resque:setup" => :environment
można również oczyścić z konsola łącząca się z redis i działającą .del ("pracownicy") – Bob