sidekiq 7.3.8 → 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 +7 -0
- data/lib/active_job/queue_adapters/sidekiq_adapter.rb +0 -13
- data/lib/sidekiq/job/iterable.rb +1 -1
- data/lib/sidekiq/rails.rb +12 -2
- data/lib/sidekiq/version.rb +1 -1
- 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/queue.erb +1 -1
- metadata +3 -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,13 @@
|
|
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
|
+
|
5
12
|
7.3.8
|
6
13
|
----------
|
7
14
|
|
@@ -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/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)
|
@@ -38,9 +49,8 @@ module Sidekiq
|
|
38
49
|
# end
|
39
50
|
# end
|
40
51
|
initializer "sidekiq.active_job_integration" do
|
41
|
-
require "active_job/queue_adapters/sidekiq_adapter"
|
42
|
-
|
43
52
|
ActiveSupport.on_load(:active_job) do
|
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
@@ -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/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: 2025-
|
10
|
+
date: 2025-02-14 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: redis-client
|
@@ -231,7 +230,6 @@ metadata:
|
|
231
230
|
changelog_uri: https://github.com/sidekiq/sidekiq/blob/main/Changes.md
|
232
231
|
source_code_uri: https://github.com/sidekiq/sidekiq
|
233
232
|
rubygems_mfa_required: 'true'
|
234
|
-
post_install_message:
|
235
233
|
rdoc_options: []
|
236
234
|
require_paths:
|
237
235
|
- lib
|
@@ -246,8 +244,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
246
244
|
- !ruby/object:Gem::Version
|
247
245
|
version: '0'
|
248
246
|
requirements: []
|
249
|
-
rubygems_version: 3.
|
250
|
-
signing_key:
|
247
|
+
rubygems_version: 3.6.2
|
251
248
|
specification_version: 4
|
252
249
|
summary: Simple, efficient background processing for Ruby
|
253
250
|
test_files: []
|