2013-03-08 1 views
0

Итак, у меня есть два сервера.Resque удаленные задания

Сервер: Имеет Redis, рубин + Resque камень + грабли камень Сервер B: Имеет рубиновый на рельсах + спасательное камень

с сервера BI епдиеие задания в Redis на сервере A. Сервер А получает задание:

*** Found job on test 
*** got: (Job{test} | TestQueue | []) 
*** Running before_fork hooks with [(Job{test} | TestQueue | [])] 
*** resque-1.23.1: Forked 10388 at 1362750385 
*** Failed to start worker : #<NameError: uninitialized constant TestQueue> 

Таким образом, я решил, что рабочие места должны жить на сервере А. Поэтому я переместил туда задания. Но тогда, когда я епдиеие от сервера Б я получаю следующее:

rails console 
Loading development environment (Rails 3.2.12) 
irb(main):001:0> Resque.enqueue(TestQueue) 
NameError: uninitialized constant TestQueue 

Единственный способ, которым я действительно получил его на работу был, когда я имел работу на обоих серверах, но то далеко от идеала.

Как я могу дистанцироваться от работы в очереди?

+0

Где класс TestQueue определить в сервере A и сервер B – Viren

ответ

0

resque-remote - жемчужина, используемая для удаленных заданий в очереди.

Если значение Resque.inline истинно, задание будет выставлено в очередь на текущую очередь.

Источник: https://github.com/localshred/resque-remote

+0

Для тех, кто читает это, если вы используете новые версии Resque, т.е.> = 2.x, вам это не нужно драгоценный камень. Вместо этого используйте стандартный метод API Resque.push. http://rubydoc.info/github/resque/resque/Resque:push – Andres