sidekiq 7.3.7 → 7.3.9
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|