2013-02-09 16 views
6

Ho seguito il tutorial allo https://devcenter.heroku.com/articles/queuing-ruby-resque per fare la coda ed eseguire lavori in background in un'applicazione Rails. Dopo i lavori in coda, non sembra per eseguire uno qualsiasi dei posti di lavoro dal nella console posso vedere il lavoro non è stato elaboratoI lavori con Resque forniscono "Non so come creare attività": lavoro "" su Heroku

>Resque.info 
=> {:pending=>1, :processed=>0, :queues=>1, :workers=>0, :working=>0, :failed=>0, :servers=>["redis://dory.redistogo.com:9826/0"], :environment=>"production"} 

Se provo a fare (a livello locale)

bundle exec rake jobs:work 

ottengo

rake aborted! 
Don't know how to build task 'jobs:work' 

Su Heroku, se provo

ho di nuovo ottenere `Non so come costruire un'attività'

Nel mio Rakefile, ho require 'resque/tasks' e nel mio Procfile ho

resque: env TERM_CHILD=1 bundle exec rake jobs:work 
resque: env TERM_CHILD=1 bundle exec rake jobs:work 

ho la Resque e gemme Redis nel mio Gemfile, ma non delayed_job.

Aggiornamento: Ecco il mio Rakefile:

#!/usr/bin/env rake 
require File.expand_path('../config/application', __FILE__) 
Guard::Application.load_tasks 

/lib/tasks è vuoto. Ho un lavoratore in app/lavoratori che sto accodando in un controller.

risposta

6

Questo non sembra avere nulla a che fare con Heroku, se non funziona localmente. Dovrai rivelare alcune delle tue fonti per aiutare le persone ad aiutarti. Ad esempio, come è il tuo Rakefile? L'app demo nell'articolo defines one with a Rake task con l'attività. Hai definito la tua attività di rake e aggiunto i riferimenti gem relativi?

+0

Penso che tu abbia ragione, probabilmente sto perdendo qualcosa. Ho aggiunto il mio Rakefile. Cercherò documenti resque. Fammi sapere quali altre informazioni posso fornire. – highBandWidth

+8

Ohh, probabilmente ho bisogno di aggiungere il file lib/tasks/resque.rake con 'require" resque/tasks " task" resque: setup "=>: environment'. Ci proverò quando tornerò sul mio computer. – highBandWidth

+0

Sì, ho dovuto definire il compito in lib/task – highBandWidth

0

Provare resque:work invece di jobs:work e vedere se questo è il risultato desiderato.

+0

Dà lo stesso errore: 'Non so come creare task 'resque: work'' – highBandWidth

0

Hai solo bisogno di aggiungere require 'resque/tasks' nel vostro Rakefile, poi sulla riga di comando:

QUEUE=file_serve rake environment resque:work 

Dove file_serve è il nome del tuo lavoro (la classe sarebbe FileServeJob).

Vedere i documenti here - Li ho trovati leggermente confusi poiché l'installazione e le informazioni di esecuzione vengono dopo la creazione della classe di lavoro.

+0

Nota puoi anche usare il carattere jolly '*' al posto del nome del lavoro 'file_serve' per eseguire tutti i lavori - Ho avuto problemi quando uso un nome per qualche motivo. – benjineer

Problemi correlati