23-11-2011, 04:22 PM
Quand tu définis une classe de Job, tu lui spécifies une queue.
exemple :
Ici, toutes ces tâches seront dans la queue "game", et se feront les uns après les autres, donc sans concurrence. Et même si tu as plusieurs workers qui traitent cette queue, le mécanisme de Redis te garantie qu'une tâche sera pas distribuée à 2 workers.
exemple :
class StartGameJob
@queue = :game
# Start the game only if needed.
def self.perform(game_id)
game = Game.find(game_id)
game.start!
end
end
Ici, toutes ces tâches seront dans la queue "game", et se feront les uns après les autres, donc sans concurrence. Et même si tu as plusieurs workers qui traitent cette queue, le mécanisme de Redis te garantie qu'une tâche sera pas distribuée à 2 workers.