Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
serializable_hash: Jobs should partially define how to as serialize and de-serialize themselves #9924
(based on feedback from #9910)
Problem I'm trying to solve:
Users of Rails Q API expect the Q system to be able to serialize and de-serialize the jobs they enQ. If it's unable to do so, it should complain about it with an exact reason, at the time of enQ.
This problem can't easily be solved exclusively by the framework. Any attempt to do so fully would likely lead to a leaky abstraction wherein Job authors end up digging in to the guts of such an implementation.
Instead, a simple and minimal contract should exist between Job objects and the framework responsible for enQ-ing and running them.
Backend job systems should have a choice on how to serialize jobs. It's fine for Marshal to be the default in Rails, but it's unnecessarily restricting to impose this requirement on all integrators.