Проблема в resque: задание не удаляется из очереди после завершения обработки - PullRequest
0 голосов
/ 05 апреля 2011

Я использую resque и resque-scheduler в моем приложении rails. Я сталкиваюсь со странной проблемой при использовании resque-планировщика. Одна из моих задач - не быть удаленными из очереди, как только она заканчивается методом «выполнения». Мне нужно убить это явно, чтобы выйти из очереди, тогда другие задания в очереди начинают выполняться.

Класс работы прост, как:

                    class FooJob
                      @queue = :high_volume

                      def self.perform
                        puts "FooJob#perform:"
                        # some method call
                      end
                    end

И resque_schedule.yml содержит:

                    add_jobs_from_foo:
                      cron: "15 * * * *"
                      class: FooJob
                      description: "enqueue jobs from Foo"

Может ли быть проблема с версиями гемов? или любой другой?

Ответы [ 2 ]

0 голосов
/ 04 октября 2012

попробуем этот драгоценный камень "resque-status"

получить статус работы-

status = Resque::Plugins::Status::Hash.get(job_id)

Resque :: Plugins :: Status :: Hash.get (job_id) объект собирается вернуть:

status.pct_complete #=> 0
status.status #=> 'queued'
status.queued? #=> true
status.working? #=> false
status.time #=> Time object        
status.message #=> "Created at ..."

получите этот драгоценный камень и для деталей: https://github.com/quirkey/resque-status

0 голосов
/ 05 апреля 2011

Вы действительно подтвердили, посмотрев на redis напрямую? Задание удаляется из очереди до того, как perform даже начнет выполнение.

...