I would not use pub/sub for this either. I have been using a little peice of code called Redactor to make little actors based on blpop, looks like this:
https://gist.github.com/937648
You can define mailboxes and then define receieve callbacks to proceass the messages. Even if you run a huge pool of the same workers you will never run the same job twice.
Cheers-
Ezra Zygmuntowicz
ezmo...@gmail.com