sidekiq 7.3.7 → 7.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Changes.md +13 -0
- data/lib/active_job/queue_adapters/sidekiq_adapter.rb +0 -13
- data/lib/sidekiq/job/iterable.rb +1 -1
- data/lib/sidekiq/paginator.rb +6 -0
- data/lib/sidekiq/rails.rb +12 -2
- data/lib/sidekiq/version.rb +1 -1
- data/lib/sidekiq/web/helpers.rb +7 -7
- data/sidekiq.gemspec +1 -0
- data/web/assets/javascripts/dashboard-charts.js +2 -0
- data/web/assets/javascripts/dashboard.js +6 -0
- data/web/locales/en.yml +3 -0
- data/web/views/_footer.erb +1 -2
- data/web/views/dashboard.erb +4 -1
- data/web/views/morgue.erb +1 -1
- data/web/views/queue.erb +1 -1
- metadata +17 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: dccc402e8f4e309a47a2adb62418fa29989012e8c94f34aa11200b098dc375f2
|
|
4
|
+
data.tar.gz: 71b64a582d5971b045d60bae38dc26da265b60ff9a099ca3b2f9c7df9035e805
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d9148b613a222ca9617ceebe25bb04a5d086edacdafad4a426b6232662d3b583db462dc5e0491297f7859037c5166bcb541bddcd3949f6d3b5a1c2e3fc572b65
|
|
7
|
+
data.tar.gz: 93a797cefd1a68adb236c7538c28571467c328d6965af0bc5ce505a1391d6f5b6e2ae2c87b42110e837dcfa8d788aff55309806bbb1bcd181e205c3bc66adc29
|
data/Changes.md
CHANGED
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
[Sidekiq Changes](https://github.com/sidekiq/sidekiq/blob/main/Changes.md) | [Sidekiq Pro Changes](https://github.com/sidekiq/sidekiq/blob/main/Pro-Changes.md) | [Sidekiq Enterprise Changes](https://github.com/sidekiq/sidekiq/blob/main/Ent-Changes.md)
|
|
4
4
|
|
|
5
|
+
7.3.9
|
|
6
|
+
----------
|
|
7
|
+
|
|
8
|
+
- Only require activejob if necessary [#6584]
|
|
9
|
+
- Fix iterable job cancellation [#6589]
|
|
10
|
+
- Web UI accessibility improvements [#6604]
|
|
11
|
+
|
|
12
|
+
7.3.8
|
|
13
|
+
----------
|
|
14
|
+
|
|
15
|
+
- Fix dead tag links [#6554]
|
|
16
|
+
- Massive Web UI performance improvement, some pages up to 15x faster [#6555]
|
|
17
|
+
|
|
5
18
|
7.3.7
|
|
6
19
|
----------
|
|
7
20
|
|
|
@@ -1,18 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module Sidekiq
|
|
4
|
-
module ActiveJob
|
|
5
|
-
# @api private
|
|
6
|
-
class Wrapper
|
|
7
|
-
include Sidekiq::Job
|
|
8
|
-
|
|
9
|
-
def perform(job_data)
|
|
10
|
-
::ActiveJob::Base.execute(job_data.merge("provider_job_id" => jid))
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
|
|
16
3
|
module ActiveJob
|
|
17
4
|
module QueueAdapters
|
|
18
5
|
# Explicitly remove the implementation existing in older rails'.
|
data/lib/sidekiq/job/iterable.rb
CHANGED
|
@@ -200,7 +200,7 @@ module Sidekiq
|
|
|
200
200
|
if ::Process.clock_gettime(::Process::CLOCK_MONOTONIC) - state_flushed_at >= STATE_FLUSH_INTERVAL || is_interrupted
|
|
201
201
|
_, _, cancelled = flush_state
|
|
202
202
|
state_flushed_at = ::Process.clock_gettime(::Process::CLOCK_MONOTONIC)
|
|
203
|
-
if cancelled
|
|
203
|
+
if cancelled
|
|
204
204
|
@_cancelled = true
|
|
205
205
|
logger.info { "Job cancelled" }
|
|
206
206
|
return true
|
data/lib/sidekiq/paginator.rb
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
module Sidekiq
|
|
4
4
|
module Paginator
|
|
5
|
+
TYPE_CACHE = {
|
|
6
|
+
"dead" => "zset",
|
|
7
|
+
"retry" => "zset",
|
|
8
|
+
"schedule" => "zset"
|
|
9
|
+
}
|
|
10
|
+
|
|
5
11
|
def page(key, pageidx = 1, page_size = 25, opts = nil)
|
|
6
12
|
current_page = (pageidx.to_i < 1) ? 1 : pageidx.to_i
|
|
7
13
|
pageidx = current_page - 1
|
data/lib/sidekiq/rails.rb
CHANGED
|
@@ -4,6 +4,17 @@ require "sidekiq/job"
|
|
|
4
4
|
require "rails"
|
|
5
5
|
|
|
6
6
|
module Sidekiq
|
|
7
|
+
module ActiveJob
|
|
8
|
+
# @api private
|
|
9
|
+
class Wrapper
|
|
10
|
+
include Sidekiq::Job
|
|
11
|
+
|
|
12
|
+
def perform(job_data)
|
|
13
|
+
::ActiveJob::Base.execute(job_data.merge("provider_job_id" => jid))
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
7
18
|
class Rails < ::Rails::Engine
|
|
8
19
|
class Reloader
|
|
9
20
|
def initialize(app = ::Rails.application)
|
|
@@ -39,8 +50,7 @@ module Sidekiq
|
|
|
39
50
|
# end
|
|
40
51
|
initializer "sidekiq.active_job_integration" do
|
|
41
52
|
ActiveSupport.on_load(:active_job) do
|
|
42
|
-
|
|
43
|
-
|
|
53
|
+
require_relative "../active_job/queue_adapters/sidekiq_adapter"
|
|
44
54
|
include ::Sidekiq::Job::Options unless respond_to?(:sidekiq_options)
|
|
45
55
|
end
|
|
46
56
|
end
|
data/lib/sidekiq/version.rb
CHANGED
data/lib/sidekiq/web/helpers.rb
CHANGED
|
@@ -52,11 +52,11 @@ module Sidekiq
|
|
|
52
52
|
end
|
|
53
53
|
|
|
54
54
|
def strings(lang)
|
|
55
|
-
|
|
55
|
+
@@strings ||= {}
|
|
56
56
|
|
|
57
57
|
# Allow sidekiq-web extensions to add locale paths
|
|
58
58
|
# so extensions can be localized
|
|
59
|
-
|
|
59
|
+
@@strings[lang] ||= settings.locales.each_with_object({}) do |path, global|
|
|
60
60
|
find_locale_files(lang).each do |file|
|
|
61
61
|
strs = YAML.safe_load(File.read(file))
|
|
62
62
|
global.merge!(strs[lang])
|
|
@@ -77,19 +77,19 @@ module Sidekiq
|
|
|
77
77
|
end
|
|
78
78
|
|
|
79
79
|
def clear_caches
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
80
|
+
@@strings = nil
|
|
81
|
+
@@locale_files = nil
|
|
82
|
+
@@available_locales = nil
|
|
83
83
|
end
|
|
84
84
|
|
|
85
85
|
def locale_files
|
|
86
|
-
|
|
86
|
+
@@locale_files ||= settings.locales.flat_map { |path|
|
|
87
87
|
Dir["#{path}/*.yml"]
|
|
88
88
|
}
|
|
89
89
|
end
|
|
90
90
|
|
|
91
91
|
def available_locales
|
|
92
|
-
|
|
92
|
+
@@available_locales ||= Set.new(locale_files.map { |path| File.basename(path, ".yml") })
|
|
93
93
|
end
|
|
94
94
|
|
|
95
95
|
def find_locale_files(lang)
|
data/sidekiq.gemspec
CHANGED
|
@@ -83,6 +83,8 @@ class RealtimeChart extends DashboardChart {
|
|
|
83
83
|
this.chart.data.datasets[1].data.push(failed);
|
|
84
84
|
this.chart.update();
|
|
85
85
|
|
|
86
|
+
updateScreenReaderDashboardValues(processed, failed);
|
|
87
|
+
|
|
86
88
|
updateStatsSummary(this.stats.sidekiq);
|
|
87
89
|
updateRedisStats(this.stats.redis);
|
|
88
90
|
updateFooterUTCTime(this.stats.server_utc_time);
|
|
@@ -36,6 +36,12 @@ var ready = (callback) => {
|
|
|
36
36
|
else document.addEventListener("DOMContentLoaded", callback);
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
+
var updateScreenReaderDashboardValues = function(processed, failed) {
|
|
40
|
+
let lastDashboardUpdateSpan = document.getElementById("sr-last-dashboard-update");
|
|
41
|
+
var updateText = document.getElementById("sr-last-dashboard-update-template").innerText;
|
|
42
|
+
lastDashboardUpdateSpan.innerText = updateText.replace("PROCESSED_COUNT", processed).replace("FAILED_COUNT", failed);
|
|
43
|
+
}
|
|
44
|
+
|
|
39
45
|
ready(() => {
|
|
40
46
|
var sldr = document.getElementById('sldr');
|
|
41
47
|
if (typeof localStorage.sidekiqTimeInterval !== 'undefined') {
|
data/web/locales/en.yml
CHANGED
|
@@ -34,6 +34,8 @@ en:
|
|
|
34
34
|
Jobs: Jobs
|
|
35
35
|
Kill: Kill
|
|
36
36
|
KillAll: Kill All
|
|
37
|
+
Language: Language
|
|
38
|
+
LastDashboardUpdateTemplateLiteral: "Latest poll: Processed: PROCESSED_COUNT. Failed: FAILED_COUNT."
|
|
37
39
|
LastRetry: Last Retry
|
|
38
40
|
Latency: Latency
|
|
39
41
|
LivePoll: Live Poll
|
|
@@ -53,6 +55,7 @@ en:
|
|
|
53
55
|
PeakMemoryUsage: Peak Memory Usage
|
|
54
56
|
Plugins: Plugins
|
|
55
57
|
PollingInterval: Polling interval
|
|
58
|
+
PollingIntervalMilliseconds: Polling interval milliseconds
|
|
56
59
|
Process: Process
|
|
57
60
|
Processed: Processed
|
|
58
61
|
Processes: Processes
|
data/web/views/_footer.erb
CHANGED
|
@@ -17,8 +17,7 @@
|
|
|
17
17
|
<li>
|
|
18
18
|
<form id="locale-form" class="form-inline" action="<%= root_path %>change_locale" method="post">
|
|
19
19
|
<%= csrf_tag %>
|
|
20
|
-
<
|
|
21
|
-
<select id="locale-select" class="form-control" name="locale">
|
|
20
|
+
<select id="locale-select" class="form-control" aria-label="<%= t("Language") %>" name="locale">
|
|
22
21
|
<% available_locales.each do |locale_option| %>
|
|
23
22
|
<% if locale_option == locale %>
|
|
24
23
|
<option selected value="<%= locale_option %>"><%= locale_option %></option>
|
data/web/views/dashboard.erb
CHANGED
|
@@ -11,11 +11,14 @@
|
|
|
11
11
|
<span class="interval-slider-label"><%= t('PollingInterval') %>:</span>
|
|
12
12
|
<span id="sldr-text" class="current-interval">5 s</span>
|
|
13
13
|
<br/>
|
|
14
|
-
<input id="sldr" type="range" min="2000" max="20000" step="1000" value="5000"/>
|
|
14
|
+
<input id="sldr" aria-label="<%= t("PollingIntervalMilliseconds") %>" type="range" min="2000" max="20000" step="1000" value="5000"/>
|
|
15
15
|
</div>
|
|
16
16
|
</div>
|
|
17
17
|
|
|
18
18
|
<div class="row chart">
|
|
19
|
+
<span id="sr-last-dashboard-update-template" hidden="hidden"><%= t("LastDashboardUpdateTemplateLiteral") %></span>
|
|
20
|
+
<span id="sr-last-dashboard-update" class="sr-only" role="status"></span>
|
|
21
|
+
|
|
19
22
|
<canvas id="realtime-chart">
|
|
20
23
|
<%= to_json({
|
|
21
24
|
processedLabel: t('Processed'),
|
data/web/views/morgue.erb
CHANGED
data/web/views/queue.erb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sidekiq
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 7.3.
|
|
4
|
+
version: 7.3.9
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Mike Perham
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 2025-02-14 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: redis-client
|
|
@@ -66,6 +65,20 @@ dependencies:
|
|
|
66
65
|
- - ">="
|
|
67
66
|
- !ruby/object:Gem::Version
|
|
68
67
|
version: '0'
|
|
68
|
+
- !ruby/object:Gem::Dependency
|
|
69
|
+
name: base64
|
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - ">="
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: '0'
|
|
75
|
+
type: :runtime
|
|
76
|
+
prerelease: false
|
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - ">="
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: '0'
|
|
69
82
|
description: Simple, efficient background processing for Ruby.
|
|
70
83
|
email:
|
|
71
84
|
- info@contribsys.com
|
|
@@ -217,7 +230,6 @@ metadata:
|
|
|
217
230
|
changelog_uri: https://github.com/sidekiq/sidekiq/blob/main/Changes.md
|
|
218
231
|
source_code_uri: https://github.com/sidekiq/sidekiq
|
|
219
232
|
rubygems_mfa_required: 'true'
|
|
220
|
-
post_install_message:
|
|
221
233
|
rdoc_options: []
|
|
222
234
|
require_paths:
|
|
223
235
|
- lib
|
|
@@ -232,8 +244,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
232
244
|
- !ruby/object:Gem::Version
|
|
233
245
|
version: '0'
|
|
234
246
|
requirements: []
|
|
235
|
-
rubygems_version: 3.
|
|
236
|
-
signing_key:
|
|
247
|
+
rubygems_version: 3.6.2
|
|
237
248
|
specification_version: 4
|
|
238
249
|
summary: Simple, efficient background processing for Ruby
|
|
239
250
|
test_files: []
|