marshall-lee/sidekiq-postpone

Incompatible with Sidekiq Pro’s reliable push?

steobrien opened this issue · 6 comments

I encounter a stack overflow in this configuration:
image

Any tips on how to fix? Would you accept a PR for this?

Hi @steobrien!

I guess it's the same issue I had experienced with Sidekiq::Testing that monkey-patches Sidekiq::Client#raw_push too.

I would love to accept a PR for this but I'm not sure how to write a good spec for this since sidekiq/pro/push is not included into opensource distribution :) So in the lack of tests, It'd be good if proposed change will be small and clean.

And probably I'll try to investigate it myself too (but later, busy now).

OK cool! I'll take a quick look this week.

I think there's an okay-ish workaround:

# Gemfile
gem 'sidekiq-postpone', require: false

# app code, e.g. initializer
Sidekiq::Client.reliable_push!
require "sidekiq/postpone"

Seems to work. Will verify!

Yep, this does the trick.

I guess sidekiq/postpone must not activate its monkey-patch automatically. We could act like reliable push:

Sidekiq::Client.enable_postpone!

It requires a bump of major version, of course, and a line in UPGRADING.md document.

Is this still an issue? We tested this with Sidekiq Pro/Ent and got postponement as we would expect.