You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For discussion, this is a list of potential improvements to Queue Classic. Most of them are breaking changes that require a major revision bump. Would be nice to do them all at once.
Discourage inheriting from QC classes (using inheritance makes it harder to make backward-compatible changes in the future). Try to satisfy everyone with callbacks and configuration instead.
If it's unreasonable to remove inheritance entirely, reduce the exposed API by marking parts of classes private and declaring explicit base classes. Right now, with everything public, most modifications are technically breaking changes.
I played with the second-to-last item in the list: removing the QC::ConnAdapter class and just using ActiveRecord's connection (or a plain PGconn when AR isn't available).
So far it's a nice simplification. I still need to make tests pass again but it's getting there. Some assumptions:
mutex synchronization isn't needed. This seems OK to me because Rails and AR are concurrent now. Parallelization should produce a nice speedup I'd have to do a torture test to see if this is still correct.
This change removes a bunch of code and makes things nicer for people using AR/ActiveJob (especially in the migrations!). However, it also removes some functionality from the standalone case (mostly stuff that AR already does like logging and exception handling).
Personally, I only use QC in Rails apps sharing the AR connection, so this cleanup appeals to me a lot. But if people care about preserving all QC's functionality when used standalone then, I gotta say, this doesn't make much sense.
For discussion, this is a list of potential improvements to Queue Classic. Most of them are breaking changes that require a major revision bump. Would be nice to do them all at once.
private
and declaring explicit base classes. Right now, with everything public, most modifications are technically breaking changes.Worker#work_off
andrake qc:work_off
. #256)very unlikely:
NOTIFY
/LISTEN
support? que-rb/que#75Anything else? Anyone have opinions?
I'd like to expand any of these that make sense to PRs.
The text was updated successfully, but these errors were encountered: