* Prepare for upcoming Sidekiq::Config redesign
Adjust the server internals to use a config object rather than refering directly to the Sidekiq module.
The arguments are always ignored, but this allows the block to be passed
to a method that yields arguments:
class TaggedLoggingMiddleware
def call(*, &block)
Rails.logger.tagged("my cool job", &block)
end
end
* Add appraisal
* Test CLI run (write pid, system boot, print banner)
* Cleanup test helper
* Set REDIS_URL to use non-default host in test env
* Move mintiest-focus to test bundle group
* Refactor CLI test
Extracted 3 main parts:
- parse
- run
- signal handling
* Move demonization and pid write from parse to run phase
* Move queues default from validate to setup options phase
* Add pry-byebug gem
* Drop Sidekiq::Test
* Require launcher in CLI
* Remove TODOs
* Rework job processing in light of Rails 5's Reloader, see #3221
* Ignore built gems
* Documentation, testing
* Add fallback for 'retry' value server-side, fixes#3234
* Fix job hash reporting in stats
* cleanup
* Add job for AJ testing
* Push jobs with invalid JSON immediately to Dead set, fixes#3296
* Break retry logic into global and local parts, fixes#3306
* fix heisentest
When pushing a job, the middleware should be able to access the Redis instance associated with that job. Previously, Sidekiq was limited to one global Redis instance. Now that we want to support sharding, we have to explicitly pass the instance in OR hack up APIs with thread local variables. Explicit is better.
* Adds `max_retries` option to RetryJobs middleware. Default is still 25. This
way you can still retry jobs, but not have it spread out over such a long
period.
Modify `Sidekiq::Middleware::Chain#add` semantics
* If middleware class already exists in the chain, remove the
existing class and add it with possibly new arguments.
the client use separate pools.
This is so the Rails app Sidekiq::Client and
Sidekiq::Manager can use different configurations.
Also, fix issue where workers were not unregistered
in Redis upon shutdown.