Hi guys, I wanted to discuss the new Queueing API for those of us who
are implementing an out-of-process version.  In my case, I write
Sidekiq [1] and would like to support the new API once Rails 4 is
released.  My issue is that because the API is object-oriented rather
than message-oriented, implementation of out-of-process workers is
difficult.

The API is Queue#push(job) where job has a run method.  Ruby doesn't
have a great solution for serializing a Ruby object across the wire.
Marshal limits the API to Ruby solutions (which rules out RabbitMQ, et
al), JSON can't fully serialize Ruby objects (e.g. symbols) and YAML
has a number of issues in practice that make it painful to use (e.g.
see the monkeypatches DelayedJob has to use [2]).

So I love the simplicity of the API but think it will lead to painful
implementation issues.  What do you think about defining a simpler
message format that can be fully serialized and deserialized via JSON
/ YAML / etc instead of using a Ruby object?

mike

[1] http://mperham.github.com/sidekiq/
[2] 
https://github.com/collectiveidea/delayed_job/blob/master/lib/delayed/psych_ext.rb

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en.

Reply via email to