Передача объекта в качестве аргумента в Resque-Worker

Есть ли способ передать объект как значение аргумента в Resque-workers.

Я хочу сделать что-то вроде этого Resque.enqueue(SomeWorker, obj) вместо Resque.enqueue(SomeWorker, id) мой объект другого типа, у которого нет идентификатора.

Цените любую помощь.


person Bhushan Lodha    schedule 25.01.2012    source источник


Ответы (1)


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

идея состоит в том, что вы передаете минимум информации своему воркеру, в идеале идентификатор, чтобы воркер мог сам получить остальную информацию.

поскольку данные сохраняются в Redis, вам действительно нужно каким-то образом маршалировать ваш объект при его постановке в очередь, а затем демаршалировать его, когда рабочий извлекает данные.

если ваш объект просто содержит некоторые данные, вы должны подумать о передаче их в виде хэша, потому что они легко сохраняются в Redis.

person phoet    schedule 25.01.2012