873f1df | Mike Perham | 02 April 2018, 16:04:41 UTC | changes, release | 02 April 2018, 16:04:41 UTC |
bca9396 | Nate Berkopec | 29 March 2018, 20:06:23 UTC | Fix Ruby version comparison This line previously failed against 2.2.10. | 29 March 2018, 20:07:14 UTC |
6614abd | Mike Perham | 29 March 2018, 19:08:40 UTC | release | 29 March 2018, 19:08:40 UTC |
c262f76 | Mike Perham | 29 March 2018, 19:04:02 UTC | release | 29 March 2018, 19:04:02 UTC |
b23c0ec | Aaron Kromer | 27 March 2018, 20:53:59 UTC | Use `RAILS_MAX_THREADS` for client pool size This is a follow up to #2985 (52828e4) adding similar support for the client connection pool. For Rails servers, Sidekiq is not loaded from the CLI so the prior change to support setting the concurrency via `RAILS_MAX_THREADS` is not applied to the web server process. This means for Rails servers which do not configure a custom size through an initializer they will run with the default connection pool size of 5. When the Rails server runs the initial Redis connection may be made through `Sidekiq::Client` (e.g. from [`ActiveJob::QueueAdapters::SidekiqAdapter`](https://github.com/rails/rails/blob/v5.1.5/activejob/lib/active_job/queue_adapters/sidekiq_adapter.rb#L20)). This causes the `redis_pool` to be initialized without any options, setting the pool size to the default of 5. .gem/ruby/2.5.0/gems/sidekiq-5.1.1/lib/sidekiq.rb:125:in `redis_pool' .gem/ruby/2.5.0/gems/sidekiq-5.1.1/lib/sidekiq/client.rb:42:in `initialize' .gem/ruby/2.5.0/gems/sidekiq-5.1.1/lib/sidekiq/client.rb:131:in `new' .gem/ruby/2.5.0/gems/sidekiq-5.1.1/lib/sidekiq/client.rb:131:in `push' .gem/ruby/2.5.0/gems/activejob-5.1.5/lib/active_job/queue_adapters/sidekiq_adapter.rb:20:in `enqueue' .gem/ruby/2.5.0/gems/activejob-5.1.5/lib/active_job/enqueuing.rb:51:in `block in enqueue' .gem/ruby/2.5.0/gems/activesupport-5.1.5/lib/active_support/callbacks.rb:108:in `block in run_callbacks' .gem/ruby/2.5.0/gems/activejob-5.1.5/lib/active_job/logging.rb:15:in `block (3 levels) in <module:Logging>' .gem/ruby/2.5.0/gems/activejob-5.1.5/lib/active_job/logging.rb:44:in `block in tag_logger' .gem/ruby/2.5.0/gems/activesupport-5.1.5/lib/active_support/tagged_logging.rb:69:in `block in tagged' .gem/ruby/2.5.0/gems/activesupport-5.1.5/lib/active_support/tagged_logging.rb:26:in `tagged' .gem/ruby/2.5.0/gems/activesupport-5.1.5/lib/active_support/tagged_logging.rb:69:in `tagged' .gem/ruby/2.5.0/gems/activejob-5.1.5/lib/active_job/logging.rb:44:in `tag_logger' .gem/ruby/2.5.0/gems/activejob-5.1.5/lib/active_job/logging.rb:14:in `block (2 levels) in <module:Logging>' .gem/ruby/2.5.0/gems/activesupport-5.1.5/lib/active_support/callbacks.rb:117:in `instance_exec' .gem/ruby/2.5.0/gems/activesupport-5.1.5/lib/active_support/callbacks.rb:117:in `block in run_callbacks' .gem/ruby/2.5.0/gems/activesupport-5.1.5/lib/active_support/callbacks.rb:135:in `run_callbacks' .gem/ruby/2.5.0/gems/activejob-5.1.5/lib/active_job/enqueuing.rb:47:in `enqueue' .gem/ruby/2.5.0/gems/activejob-5.1.5/lib/active_job/enqueuing.rb:18:in `perform_later' For the majority of cases, a client pool size of 5 is sufficient. However, servers which utilize a high number of threads, with large job payloads, and which may experience some network latency issues can see `Timeout::Error` crashes. This may be further exacerbated by the ~2-20x performance decrease through `ActiveJob` (#3782). Rails addresses this general type of connection issue for the main database by suggesting that the DB pool size match the number of threads running. This change applies that logic to the default client pool size by leveraging the same environment setting; this way there's a connection available per thread. This may also have the side effect of a slight performance boost, as there is less of a chance that threads will be blocked waiting on connections. The trade-off is that there may be a memory profile increase to handle the additional Redis connections in the pool; note the pool only creates new connections as necessary to handle the requests. Resolves #3806 | 27 March 2018, 22:46:57 UTC |
60a41d3 | Mike Perham | 27 March 2018, 16:18:52 UTC | change | 27 March 2018, 16:18:52 UTC |
82bdae8 | Mike Perham | 27 March 2018, 16:18:05 UTC | Add link to docs in footer | 27 March 2018, 16:18:05 UTC |
86ca02f | Mike Perham | 22 March 2018, 16:13:21 UTC | Refactor, changes | 22 March 2018, 16:13:21 UTC |
7448351 | Salahutdinov Dmitry | 21 March 2018, 14:31:03 UTC | fix: use default when returned 0 | 22 March 2018, 16:04:28 UTC |
611f7cd | Salahutdinov Dmitry | 21 March 2018, 08:01:58 UTC | Use default retry interval in sidekiq_retry_in | 22 March 2018, 16:04:28 UTC |
1aad7b5 | Mike Perham | 19 March 2018, 04:59:45 UTC | fixes | 19 March 2018, 04:59:45 UTC |
967f3f3 | Mike Perham | 15 March 2018, 16:00:53 UTC | Add missing preamble for @krzysiek1507, #3759 | 15 March 2018, 16:00:53 UTC |
aa46700 | Mike Perham | 13 March 2018, 16:00:50 UTC | Allow use of AR middleware outside of Rails proper, fixes #3787 | 13 March 2018, 16:00:50 UTC |
8a4926c | Mike Perham | 27 February 2018, 20:50:33 UTC | Modern optimization | 27 February 2018, 20:50:33 UTC |
a0bcd59 | Mike Perham | 26 February 2018, 18:05:59 UTC | changes, bump | 26 February 2018, 18:05:59 UTC |
6b3e453 | Bernica | 26 February 2018, 17:54:21 UTC | Issue 3775 - Fixed Ctrl-C exception on Windows. | 26 February 2018, 17:59:05 UTC |
e18d9ac | pawurb | 22 February 2018, 22:08:46 UTC | Fix pro version link | 22 February 2018, 22:26:49 UTC |
c2a7ee7 | Mike Perham | 22 February 2018, 00:40:27 UTC | change | 22 February 2018, 00:40:27 UTC |
ee3194d | Mike Perham | 21 February 2018, 19:07:11 UTC | 401 | 21 February 2018, 19:07:11 UTC |
2ed9260 | Mike Perham | 16 February 2018, 21:11:54 UTC | Missed a few | 17 February 2018, 22:09:28 UTC |
7de6f4c | Mike Perham | 16 February 2018, 21:01:25 UTC | Remove explicit freeze, which should not be necessary anymore with frozen_string_literal: true. Fixes #3759 | 17 February 2018, 22:09:28 UTC |
abca42d | Simon Coffey | 15 February 2018, 14:16:54 UTC | Revert "Use active record cache when available" This reverts commit a27d692656e15636cebe74542371a5e93f3f9194. The reason for reverting is that this middleware has no effect. In Rails 5.0+, Sidekiq runs its jobs using the Rails reloader/executor API[1]. In Rails 5.0+, however, the ActiveRecord query cache registers its own hooks with the executor[2], and these hooks automatically enable the query cache for the duration of any work the executor performs[3]. As a result, the query cache is already on by default for any Sidekiq jobs run in Rails 5.0+, so it's not necessary to separately enable it in a middleware. [1] https://github.com/mperham/sidekiq/blob/eca6acc0ce201125a45a5af75fd08c6ce985df5a/lib/sidekiq/rails.rb#L33-L37 [2] https://github.com/rails/rails/blob/f8c00c130016b248d1d409f131356632dcc418c6/activerecord/lib/active_record/railtie.rb#L159-L163 [3] https://github.com/rails/rails/blob/f8c00c130016b248d1d409f131356632dcc418c6/activerecord/lib/active_record/query_cache.rb#L26-L41 | 15 February 2018, 18:02:52 UTC |
eca6acc | Mike Perham | 13 February 2018, 20:01:19 UTC | comment | 13 February 2018, 20:01:19 UTC |
cc8fed0 | Mike Perham | 08 February 2018, 18:23:42 UTC | changes | 08 February 2018, 18:23:42 UTC |
abfbc1e | Mike Perham | 08 February 2018, 18:21:20 UTC | Revert "Make links out of all issue numbers in the changelog" This reverts commit 4f0efea6722f7c044a901e27ebfbd593fac7fa33. | 08 February 2018, 18:21:20 UTC |
10b0ff9 | Mike Perham | 07 February 2018, 16:58:37 UTC | Merge branch 'master' of github.com:mperham/sidekiq | 07 February 2018, 16:58:37 UTC |
3f13f01 | Mike Perham | 07 February 2018, 16:58:31 UTC | allow redis 3 | 07 February 2018, 16:58:31 UTC |
da0bdd8 | Mike Perham | 06 February 2018, 20:27:14 UTC | Clean up examples | 06 February 2018, 20:27:14 UTC |
b4d124d | Mike Perham | 06 February 2018, 17:31:23 UTC | bump | 06 February 2018, 17:31:23 UTC |
ad80323 | Mike Perham | 06 February 2018, 16:58:55 UTC | Force Redis 4.x now, fixes #3748 | 06 February 2018, 16:58:55 UTC |
77966a9 | Mike Perham | 03 February 2018, 23:40:10 UTC | prep | 03 February 2018, 23:40:10 UTC |
329ea91 | Mike Perham | 03 February 2018, 20:33:58 UTC | Merge branch 'master' of github.com:mperham/sidekiq | 03 February 2018, 20:33:58 UTC |
5fedc9b | Mike Perham | 03 February 2018, 20:33:26 UTC | polish | 03 February 2018, 20:33:26 UTC |
4f0efea | Sean Griffin | 02 February 2018, 23:35:56 UTC | Make links out of all issue numbers in the changelog If your changelog says "see issue for details", you should make it easy for someone to get there. | 03 February 2018, 00:12:52 UTC |
b1523b9 | Mike Perham | 01 February 2018, 17:36:25 UTC | 3743 | 01 February 2018, 17:36:25 UTC |
336532c | Mike Perham | 31 January 2018, 22:43:10 UTC | Prepare for Pro 4 | 31 January 2018, 22:43:10 UTC |
cdf6430 | Mike Perham | 31 January 2018, 18:22:22 UTC | rename API to death handlers for consistency | 31 January 2018, 18:22:22 UTC |
87fc928 | Mike Perham | 31 January 2018, 17:39:51 UTC | latest | 31 January 2018, 17:39:51 UTC |
b48ae5e | Mike Perham | 29 January 2018, 20:20:08 UTC | Allow dynamic signal handlers | 29 January 2018, 20:20:08 UTC |
2df8e52 | Mike Perham | 26 January 2018, 20:23:11 UTC | changes | 26 January 2018, 20:23:11 UTC |
e2244b1 | Mike Perham | 26 January 2018, 20:18:01 UTC | Merge branch 'master' of github.com:mperham/sidekiq | 26 January 2018, 20:18:01 UTC |
5fc5966 | Mike Perham | 26 January 2018, 20:17:46 UTC | Update default scheduler precision, fixes #3734 | 26 January 2018, 20:17:46 UTC |
fbac0e5 | Krzysztof Rybka | 15 January 2018, 22:52:25 UTC | Test against ruby 2.5 | 15 January 2018, 23:01:02 UTC |
a2db45b | Mike Perham | 15 January 2018, 18:39:32 UTC | Polish job failure notification | 15 January 2018, 18:39:32 UTC |
32d03ec | Mike Perham | 12 January 2018, 22:13:45 UTC | Add global failure handlers, fixes #3721 | 12 January 2018, 22:13:45 UTC |
dca9c56 | Mike Perham | 12 January 2018, 18:41:33 UTC | bump | 12 January 2018, 18:41:33 UTC |
a27d692 | Gabriel Sobrinho | 11 January 2018, 20:00:30 UTC | Use active record cache when available This will prevent duplicated queries on database at the same job. | 12 January 2018, 17:00:36 UTC |
7cf7995 | ogom | 12 January 2018, 11:21:44 UTC | Fix japanese locale of web | 12 January 2018, 15:40:22 UTC |
54ffad5 | Mike Perham | 11 January 2018, 17:40:29 UTC | changes | 11 January 2018, 17:40:29 UTC |
1e48865 | Mike Perham | 11 January 2018, 17:38:05 UTC | Remove unused code | 11 January 2018, 17:38:05 UTC |
b9d4eae | Mike Perham | 11 January 2018, 17:37:55 UTC | Exceptions raised during the startup event should kill the process, fixes #3717 | 11 January 2018, 17:37:55 UTC |
89fcf0c | Mike Perham | 11 January 2018, 15:12:29 UTC | Avoid r-n deprecation message, fixes #3716 | 11 January 2018, 15:12:29 UTC |
e2a6227 | Mike Perham | 10 January 2018, 18:48:49 UTC | ent changes | 10 January 2018, 18:48:49 UTC |
34e39aa | Mike Perham | 10 January 2018, 18:04:14 UTC | changes | 10 January 2018, 18:04:14 UTC |
e72d51b | Mike Perham | 10 January 2018, 18:04:09 UTC | Use of logger outside of Sidekiq server process, fixes #3714 | 10 January 2018, 18:04:09 UTC |
b56afee | Mike Perham | 10 January 2018, 17:55:11 UTC | Finally fix negative pending!?!?!? | 10 January 2018, 17:55:11 UTC |
ee89592 | Mike Perham | 10 January 2018, 17:53:57 UTC | Make Sidekiq::Client.via reentrant, fixes #3715 Seems like an easy fix? | 10 January 2018, 17:53:57 UTC |
a9c9392 | Mike Perham | 20 December 2017, 23:08:10 UTC | changes | 20 December 2017, 23:08:10 UTC |
ed9af50 | Mike Perham | 20 December 2017, 18:47:48 UTC | constantize | 20 December 2017, 18:47:48 UTC |
071a235 | liam | 20 December 2017, 11:53:31 UTC | load constants from within nested namespace rather than prioriting root namespace | 20 December 2017, 14:47:53 UTC |
84f17d9 | Vaibhav | 18 December 2017, 11:31:28 UTC | Removal Of warninig message by not allowing to create singleton method if already created | 18 December 2017, 15:41:54 UTC |
b4c330b | Vaibhav | 18 December 2017, 09:50:19 UTC | Sorting Of Available Locales | 18 December 2017, 15:40:21 UTC |
6ce47ef | Mark McDonald | 14 December 2017, 21:36:10 UTC | Add all changelogs to issue template | 14 December 2017, 21:37:22 UTC |
67f57eb | Mike Perham | 12 December 2017, 17:10:55 UTC | 3.6 | 12 December 2017, 17:10:55 UTC |
e447dae | Mike Perham | 08 December 2017, 21:26:50 UTC | whoops, missed a few | 08 December 2017, 21:26:50 UTC |
5315e09 | Mike Perham | 08 December 2017, 21:24:21 UTC | Ensure TID changes after fork, fixes #3685 | 08 December 2017, 21:24:21 UTC |
515b294 | Mike Perham | 05 December 2017, 19:51:50 UTC | changes for release | 05 December 2017, 19:51:50 UTC |
dcbcbbe | Mike Perham | 05 December 2017, 18:15:25 UTC | bump | 05 December 2017, 18:15:25 UTC |
280c7f7 | Darryl Pogue | 02 December 2017, 20:26:25 UTC | Symbolize all config.yml keys when loading This ensures that keys in the Yaml file can be specified as either symbols or strings, but will always be treated as symbols after loading. It tries to use ActiveSupport's `deep_symbolize_keys!` method if ActiveSupport is loaded, otherwise falling back to an inline version. Closes #3672. | 02 December 2017, 21:37:32 UTC |
4619888 | Mike Perham | 30 November 2017, 18:12:39 UTC | remove unnecessary options, #3677 | 30 November 2017, 18:12:39 UTC |
4a7da43 | Rachael Ludwick | 30 November 2017, 00:23:49 UTC | Log at error level on redis exceptions and then warn for exception Backout previous change to the exception handler signature and instead just log at error level the main part of the redis exception then just use the original exception handler as-is (at warn level) for the backtrace. This is a compromise in compatibility insofar as the backtrace is now at a lower log level, but alerting specifically on these error strings likely uses the main error strings explicitly logged before the very verbose backtrace. | 30 November 2017, 18:11:16 UTC |
aead218 | Rachael Ludwick | 28 November 2017, 22:11:07 UTC | Make error handler change fully backwards compatible The change that Fixes mperham/sidekiq#3673 actually broke any existing exception handlers due to differences in expected parameter count. This fixes it explicitly which normally seems like it won't matter but there are random monitoring gems that install their own sidekiq exception handlers that I don't want to break. | 30 November 2017, 18:11:16 UTC |
58d5ff1 | Rachael Ludwick | 22 November 2017, 21:42:39 UTC | Use exception handler for logging for fetch exception Extends the `ExceptionHandler` to support multiple log levels and additional context text in order to use it when the `Processor` encounters an exception when fetching new work. The added options ensure that the new behavior is fairly close to the old behavior (same log level, same fetch error message). Fixes mperham/sidekiq#3673 | 23 November 2017, 01:37:29 UTC |
ae6f4aa | Mike Perham | 18 November 2017, 19:44:29 UTC | no twitter support | 18 November 2017, 19:44:29 UTC |
80f217c | Mike Perham | 15 November 2017, 14:33:57 UTC | bump jruby version to fix build? | 15 November 2017, 14:33:57 UTC |
2402bf3 | ota42y | 15 November 2017, 14:06:38 UTC | :up: update redis namespace | 15 November 2017, 14:15:44 UTC |
bbf8c32 | Takafumi ONAKA | 12 November 2017, 06:51:29 UTC | Fix message when require file could not be found sidekiq no longer supports rails 3. | 12 November 2017, 20:49:02 UTC |
5b03608 | Pete Doherty | 07 November 2017, 17:10:06 UTC | Change "really needs" to "must" in redis_connection.rb This is just a semantic change, but if the program is going to crash, I think "must have" is more prescriptive than "really needs to have". In my mind, "really needs to have" implies that the program will continue run but the user should do something differently in the future. | 07 November 2017, 17:24:58 UTC |
e19dd47 | Mike Perham | 02 November 2017, 16:03:37 UTC | remove namespacea | 02 November 2017, 16:03:37 UTC |
63ee433 | Fernando Seror | 01 November 2017, 22:13:34 UTC | JobSet#each goes through elements in descending score order The current implementation of the #each method uses Redis.zrange to paginate the iteration and use multiple lightweight calls. It performs this pagination in descending score order, but each page is returned from Redis in ascending order. The result is that the final iteration through the whole set is not sorted properly. Here's an example with a page of size 3: Redis set: 1, 2, 3, 4, 5, 6, 7, 8, 9 JobSet.to_a: 7, 8, 9, 4, 5, 6, 1, 2, 3 This fixes it with barely no performance cost (each page is reverted in Ruby) and all the items are perfectly sorted in descending score order. | 01 November 2017, 23:12:51 UTC |
4dc90f0 | Matthew Savage | 26 October 2017, 20:08:25 UTC | Added warning to STDERR if we detect Rails 3.x (< 4) about Sidekiq not supporting this version any more | 26 October 2017, 20:18:59 UTC |
ee3490d | Stephen Rushe | 26 October 2017, 16:02:00 UTC | Fix support link in README.md | 26 October 2017, 16:26:02 UTC |
28c53de | Mike Perham | 20 October 2017, 16:09:03 UTC | Remove old testing/CI junk which hasn’t been used in years | 20 October 2017, 16:09:03 UTC |
b099bd1 | Mike Perham | 20 October 2017, 15:44:37 UTC | new keys go to the bottom of the file | 20 October 2017, 15:44:37 UTC |
0ea2893 | David Santos Merino | 19 October 2017, 09:32:32 UTC | Add Latency key to en and es locales | 20 October 2017, 15:43:11 UTC |
8ff4484 | David Santos Merino | 19 October 2017, 09:32:06 UTC | Add latency row for each queue | 20 October 2017, 15:43:11 UTC |
25c0625 | Mike Perham | 18 October 2017, 21:15:39 UTC | Merge branch 'master' of github.com:mperham/sidekiq | 18 October 2017, 21:15:39 UTC |
63f1f16 | Mike Perham | 18 October 2017, 21:15:34 UTC | pro changes | 18 October 2017, 21:15:34 UTC |
fc85856 | Mike Perham | 10 October 2017, 16:41:14 UTC | note customer support | 10 October 2017, 16:41:14 UTC |
90db3b8 | Mike Perham | 02 October 2017, 19:53:14 UTC | release | 02 October 2017, 19:53:14 UTC |
167b871 | Richard Machielse | 02 October 2017, 19:00:25 UTC | Fix #3620 | 02 October 2017, 19:30:06 UTC |
6332b9f | Jeremy Daer | 29 September 2017, 04:40:21 UTC | redis-rb 4.0 support * Loosen Redis version dep to `>= 3.3.5, < 5` * Bump redis-namespace for looser Redis version dep. Pending https://github.com/resque/redis-namespace/pull/136 gem release. Use `redis.connection` where we can and fall back to `redis._client` where we need (to inspect timeout and scheme). References #3617 | 29 September 2017, 04:54:06 UTC |
84273fb | Mike Perham | 29 September 2017, 04:43:41 UTC | Update redis gem to avoid using the deprecated `client` API, fixes #3617 | 29 September 2017, 04:43:41 UTC |
33b3bb1 | Mike Perham | 14 September 2017, 19:44:22 UTC | pro and ent releases | 14 September 2017, 19:44:22 UTC |
36e75f5 | Mike Perham | 12 September 2017, 17:53:44 UTC | pro changes | 12 September 2017, 17:53:44 UTC |
39532f8 | Mike Perham | 12 September 2017, 17:49:05 UTC | Refactor Worker.set impl so it can be memoized, fixes #3602 | 12 September 2017, 17:49:05 UTC |
de701c4 | Magnus von Koeller | 11 August 2017, 20:33:09 UTC | When a middleware mutates arguments, retry with original args Currently when a server middleware mutates arguments and then the job fails, it will get re-queued with the mutated arguments, not the original arguments. This is unexpected and (IMO) faulty behavior as that same middleware will now see the already-mutated arguments when the job gets executed again. This changes the behavior to use the pristine, unmutated jobs hash when requeueing the failed job. It also includes a failing test case for the old code. | 11 August 2017, 23:33:55 UTC |
d61a747 | Mark Lee | 11 August 2017, 22:43:06 UTC | Add docs for the class arg of Client.push Document the difference between setting a string vs. a Sidekiq::Worker. | 11 August 2017, 23:25:44 UTC |
bd93f84 | Yuriy Naidyon | 10 August 2017, 04:20:32 UTC | Unified Job kill via Sidekiq::DeadSet#kill | 11 August 2017, 19:33:12 UTC |
596c981 | Mike Perham | 08 August 2017, 17:43:03 UTC | Show actual location, not :id, fixes #3560 | 08 August 2017, 17:43:27 UTC |