sidekiq 7.2.4 → 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 +116 -0
- data/README.md +1 -1
- data/bin/sidekiqload +21 -12
- data/lib/active_job/queue_adapters/sidekiq_adapter.rb +75 -0
- data/lib/generators/sidekiq/job_generator.rb +2 -0
- data/lib/sidekiq/api.rb +63 -34
- data/lib/sidekiq/capsule.rb +8 -3
- data/lib/sidekiq/cli.rb +2 -1
- data/lib/sidekiq/client.rb +21 -1
- data/lib/sidekiq/component.rb +22 -0
- data/lib/sidekiq/config.rb +27 -3
- data/lib/sidekiq/deploy.rb +2 -0
- data/lib/sidekiq/embedded.rb +2 -0
- data/lib/sidekiq/fetch.rb +1 -1
- data/lib/sidekiq/iterable_job.rb +55 -0
- data/lib/sidekiq/job/interrupt_handler.rb +24 -0
- data/lib/sidekiq/job/iterable/active_record_enumerator.rb +53 -0
- data/lib/sidekiq/job/iterable/csv_enumerator.rb +47 -0
- data/lib/sidekiq/job/iterable/enumerators.rb +135 -0
- data/lib/sidekiq/job/iterable.rb +294 -0
- data/lib/sidekiq/job.rb +13 -2
- data/lib/sidekiq/job_logger.rb +7 -6
- data/lib/sidekiq/job_retry.rb +6 -1
- data/lib/sidekiq/job_util.rb +2 -0
- data/lib/sidekiq/launcher.rb +1 -1
- data/lib/sidekiq/metrics/query.rb +2 -0
- data/lib/sidekiq/metrics/shared.rb +15 -4
- data/lib/sidekiq/metrics/tracking.rb +13 -5
- data/lib/sidekiq/middleware/current_attributes.rb +46 -13
- data/lib/sidekiq/middleware/modules.rb +2 -0
- data/lib/sidekiq/monitor.rb +2 -1
- data/lib/sidekiq/paginator.rb +6 -0
- data/lib/sidekiq/processor.rb +20 -10
- data/lib/sidekiq/rails.rb +12 -0
- data/lib/sidekiq/redis_client_adapter.rb +8 -5
- data/lib/sidekiq/redis_connection.rb +33 -2
- data/lib/sidekiq/ring_buffer.rb +2 -0
- data/lib/sidekiq/systemd.rb +2 -0
- data/lib/sidekiq/testing.rb +5 -5
- data/lib/sidekiq/version.rb +5 -1
- data/lib/sidekiq/web/action.rb +21 -4
- data/lib/sidekiq/web/application.rb +43 -82
- data/lib/sidekiq/web/helpers.rb +62 -15
- data/lib/sidekiq/web/router.rb +5 -2
- data/lib/sidekiq/web.rb +54 -2
- data/lib/sidekiq.rb +5 -3
- data/sidekiq.gemspec +3 -2
- data/web/assets/javascripts/application.js +6 -1
- data/web/assets/javascripts/dashboard-charts.js +24 -12
- data/web/assets/javascripts/dashboard.js +7 -1
- data/web/assets/stylesheets/application.css +16 -3
- data/web/locales/en.yml +3 -1
- data/web/locales/fr.yml +0 -1
- data/web/locales/gd.yml +0 -1
- data/web/locales/it.yml +32 -1
- data/web/locales/ja.yml +0 -1
- data/web/locales/pt-br.yml +1 -2
- data/web/locales/tr.yml +100 -0
- data/web/locales/uk.yml +24 -1
- data/web/locales/zh-cn.yml +0 -1
- data/web/locales/zh-tw.yml +0 -1
- data/web/views/_footer.erb +1 -2
- data/web/views/dashboard.erb +10 -7
- data/web/views/filtering.erb +1 -2
- data/web/views/layout.erb +6 -6
- data/web/views/metrics.erb +7 -8
- data/web/views/metrics_for_job.erb +4 -4
- data/web/views/morgue.erb +2 -2
- data/web/views/queue.erb +1 -1
- metadata +32 -13
data/web/locales/it.yml
CHANGED
@@ -6,44 +6,60 @@ it:
|
|
6
6
|
AreYouSureDeleteJob: Sei sicuro di voler cancellare questo lavoro?
|
7
7
|
AreYouSureDeleteQueue: Sei sicuro di voler cancellare la coda %{queue}?
|
8
8
|
Arguments: Argomenti
|
9
|
+
BackToApp: Torna all'App
|
9
10
|
Busy: Occupato
|
10
11
|
Class: Classe
|
11
12
|
Connections: Connessioni
|
13
|
+
CreatedAt: Creato il
|
12
14
|
CurrentMessagesInQueue: Messaggi in <span class='title'>%{queue}</span>
|
13
15
|
Dashboard: Dashboard
|
14
16
|
Dead: Arrestato
|
15
17
|
DeadJobs: Lavori arrestati
|
16
18
|
Delete: Cancella
|
17
19
|
DeleteAll: Cancella tutti
|
20
|
+
Deploy: Distribuire
|
18
21
|
Enqueued: In coda
|
19
22
|
Error: Errore
|
20
23
|
ErrorBacktrace: Backtrace dell'errore
|
21
24
|
ErrorClass: Classe dell'errore
|
22
25
|
ErrorMessage: Messaggio di errore
|
26
|
+
ExecutionTime: Tempo di esecuzione
|
23
27
|
Extras: Extra
|
24
28
|
Failed: Fallito
|
25
29
|
Failures: Fallimenti
|
30
|
+
Failure: Fallimento
|
26
31
|
GoBack: ← Indietro
|
27
32
|
History: Storia
|
28
33
|
Job: Lavoro
|
29
34
|
Jobs: Lavori
|
30
35
|
Kill: Uccidere
|
36
|
+
KillAll: Uccidere tutti
|
31
37
|
LastRetry: Ultimo tentativo
|
38
|
+
Latency: Latenza
|
32
39
|
LivePoll: Live poll
|
33
40
|
MemoryUsage: Memoria utilizzata
|
41
|
+
Name: Nome
|
34
42
|
Namespace: Namespace
|
35
43
|
NextRetry: Prossimo tentativo
|
36
44
|
NoDeadJobsFound: Non ci sono lavori arrestati
|
37
45
|
NoRetriesFound: Non sono stati trovati nuovi tentativi
|
38
46
|
NoScheduledFound: Non ci sono lavori pianificati
|
47
|
+
NotYetEnqueued: Non ancora in coda
|
39
48
|
OneMonth: 1 mese
|
40
49
|
OneWeek: 1 settimana
|
41
50
|
OriginallyFailed: Primo fallimento
|
51
|
+
Pause: Metti in pausa
|
52
|
+
Paused: In pausa
|
42
53
|
PeakMemoryUsage: Memoria utilizzata (max.)
|
54
|
+
Plugins: Plugins
|
55
|
+
PollingInterval: Intervallo di polling
|
56
|
+
Process: Processo
|
43
57
|
Processed: Processato
|
44
58
|
Processes: Processi
|
45
59
|
Queue: Coda
|
46
60
|
Queues: Code
|
61
|
+
Quiet: Silenzia
|
62
|
+
QuietAll: Silenzia Tutti
|
47
63
|
Realtime: Tempo reale
|
48
64
|
Retries: Nuovi tentativi
|
49
65
|
RetryAll: Riprova tutti
|
@@ -51,19 +67,34 @@ it:
|
|
51
67
|
RetryNow: Riprova
|
52
68
|
Scheduled: Pianificato
|
53
69
|
ScheduledJobs: Lavori pianificati
|
70
|
+
Seconds: Secondi
|
54
71
|
ShowAll: Mostra tutti
|
55
72
|
SixMonths: 6 mesi
|
56
73
|
Size: Dimensione
|
57
74
|
Started: Iniziato
|
58
75
|
Status: Stato
|
76
|
+
Stop: Ferma
|
77
|
+
StopAll: Ferma Tutti
|
59
78
|
StopPolling: Ferma il polling
|
79
|
+
Success: Successo
|
80
|
+
Summary: Riepilogo
|
60
81
|
Thread: Thread
|
61
|
-
Threads:
|
82
|
+
Threads: Threads
|
62
83
|
ThreeMonths: 3 mesi
|
63
84
|
Time: Ora
|
85
|
+
Unpause: Riattiva
|
64
86
|
Uptime: Uptime (giorni)
|
87
|
+
Utilization: Utilizzo
|
65
88
|
Version: Versione
|
66
89
|
When: Quando
|
67
90
|
Worker: Lavoratore
|
68
91
|
active: attivo
|
69
92
|
idle: inattivo
|
93
|
+
Metrics: Metriche
|
94
|
+
NoDataFound: Nessun dato trovato
|
95
|
+
TotalExecutionTime: Tempo totale di esecuzione
|
96
|
+
AvgExecutionTime: Tempo medio di esecuzione
|
97
|
+
Context: Contesto
|
98
|
+
NoJobMetricsFound: Metriche recenti di lavoro non trovate
|
99
|
+
Filter: Filtro
|
100
|
+
AnyJobContent: Qualsiasi contenuto di lavoro
|
data/web/locales/ja.yml
CHANGED
data/web/locales/pt-br.yml
CHANGED
@@ -7,7 +7,6 @@
|
|
7
7
|
Arguments: Argumentos
|
8
8
|
AvgExecutionTime: Tempo médio de execução
|
9
9
|
BackToApp: De volta ao aplicativo
|
10
|
-
Bucket: Bucket
|
11
10
|
Busy: Ocupados
|
12
11
|
Class: Classe
|
13
12
|
Connections: Conexões
|
@@ -93,4 +92,4 @@
|
|
93
92
|
Utilization: Utilização
|
94
93
|
Version: Versão
|
95
94
|
When: Quando
|
96
|
-
Worker: Trabalhador
|
95
|
+
Worker: Trabalhador
|
data/web/locales/tr.yml
ADDED
@@ -0,0 +1,100 @@
|
|
1
|
+
# elements like %{queue} are variables and should not be translated
|
2
|
+
tr:
|
3
|
+
Actions: Eylemler
|
4
|
+
AddToQueue: Kuyruğa ekle
|
5
|
+
AreYouSure: Emin misiniz?
|
6
|
+
AreYouSureDeleteJob: Bu işi silmek istediğinizden emin misiniz?
|
7
|
+
AreYouSureDeleteQueue: "%{queue} kuyruğunu silmek istediğinizden emin misiniz?"
|
8
|
+
Arguments: Argümanlar
|
9
|
+
BackToApp: Uygulamaya geri dön
|
10
|
+
Busy: Meşgul
|
11
|
+
Class: Sınıf
|
12
|
+
Connections: Bağlantılar
|
13
|
+
CreatedAt: Oluşturulma Tarihi
|
14
|
+
CurrentMessagesInQueue: Şu anki işler <span class='title'>%{queue}</span>
|
15
|
+
Dashboard: Gösterge Paneli
|
16
|
+
Dead: Ölü
|
17
|
+
DeadJobs: Ölü İşler
|
18
|
+
Delete: Sil
|
19
|
+
DeleteAll: Hepsini Sil
|
20
|
+
Deploy: Dağıt
|
21
|
+
Enqueued: Kuyruğa Alındı
|
22
|
+
Error: Hata
|
23
|
+
ErrorBacktrace: Hata Geri İzleme
|
24
|
+
ErrorClass: Hata Sınıfı
|
25
|
+
ErrorMessage: Hata Mesajı
|
26
|
+
ExecutionTime: Yürütme Süresi
|
27
|
+
Extras: Ekstralar
|
28
|
+
Failed: Başarısız
|
29
|
+
Failures: Başarısızlıklar
|
30
|
+
Failure: Başarısızlık
|
31
|
+
GoBack: ← Geri Dön
|
32
|
+
History: Geçmiş
|
33
|
+
Job: İş
|
34
|
+
Jobs: İşler
|
35
|
+
Kill: Sonlandır
|
36
|
+
KillAll: Hepsini Sonlandır
|
37
|
+
LastRetry: Son Yeniden Deneme
|
38
|
+
Latency: Gecikme
|
39
|
+
LivePoll: Canlı Anket
|
40
|
+
MemoryUsage: Bellek Kullanımı
|
41
|
+
Name: İsim
|
42
|
+
Namespace: Ad Alanı
|
43
|
+
NextRetry: Bir Sonraki Yeniden Deneme
|
44
|
+
NoDeadJobsFound: Ölü iş bulunamadı
|
45
|
+
NoRetriesFound: Yeniden deneme bulunamadı
|
46
|
+
NoScheduledFound: Zamanlanmış iş bulunamadı
|
47
|
+
NotYetEnqueued: Henüz kuyruğa alınmadı
|
48
|
+
OneMonth: 1 ay
|
49
|
+
OneWeek: 1 hafta
|
50
|
+
OriginallyFailed: İlk Başarısızlık
|
51
|
+
Pause: Duraklat
|
52
|
+
Paused: Duraklatıldı
|
53
|
+
PeakMemoryUsage: Maksimum Bellek Kullanımı
|
54
|
+
Plugins: Eklentiler
|
55
|
+
PollingInterval: Anket Aralığı
|
56
|
+
Process: Süreç
|
57
|
+
Processed: İşlendi
|
58
|
+
Processes: Süreçler
|
59
|
+
Queue: Kuyruk
|
60
|
+
Queues: Kuyruklar
|
61
|
+
Quiet: Sessiz
|
62
|
+
QuietAll: Hepsini Sessiz Yap
|
63
|
+
Realtime: Gerçek Zamanlı
|
64
|
+
Retries: Yeniden Denemeler
|
65
|
+
RetryAll: Hepsini Yeniden Dene
|
66
|
+
RetryCount: Yeniden Deneme Sayısı
|
67
|
+
RetryNow: Şimdi Yeniden Dene
|
68
|
+
Scheduled: Zamanlanmış
|
69
|
+
ScheduledJobs: Zamanlanmış İşler
|
70
|
+
Seconds: Saniye
|
71
|
+
ShowAll: Hepsini Göster
|
72
|
+
SixMonths: 6 ay
|
73
|
+
Size: Boyut
|
74
|
+
Started: Başlatıldı
|
75
|
+
Status: Durum
|
76
|
+
Stop: Durdur
|
77
|
+
StopAll: Hepsini Durdur
|
78
|
+
StopPolling: Anketi Durdur
|
79
|
+
Success: Başarı
|
80
|
+
Summary: Özet
|
81
|
+
Thread: İplik
|
82
|
+
Threads: İplikler
|
83
|
+
ThreeMonths: 3 ay
|
84
|
+
Time: Zaman
|
85
|
+
Unpause: Duraklatmayı Kaldır
|
86
|
+
Uptime: Çalışma Süresi (gün)
|
87
|
+
Utilization: Kullanım
|
88
|
+
Version: Sürüm
|
89
|
+
When: Ne Zaman
|
90
|
+
Worker: İşçi
|
91
|
+
active: aktif
|
92
|
+
idle: boşta
|
93
|
+
Metrics: Metrikler
|
94
|
+
NoDataFound: Veri bulunamadı
|
95
|
+
TotalExecutionTime: Toplam Yürütme Süresi
|
96
|
+
AvgExecutionTime: Ortalama Yürütme Süresi
|
97
|
+
Context: Bağlam
|
98
|
+
NoJobMetricsFound: Son iş metrikleri bulunamadı
|
99
|
+
Filter: Filtre
|
100
|
+
AnyJobContent: Herhangi bir iş içeriği
|
data/web/locales/uk.yml
CHANGED
@@ -6,31 +6,39 @@ uk:
|
|
6
6
|
AreYouSureDeleteJob: Ви впевнені у тому, що хочете видалити задачу?
|
7
7
|
AreYouSureDeleteQueue: Ви впевнені у тому, що хочете видалити чергу %{queue}?
|
8
8
|
Arguments: Аргументи
|
9
|
+
BackToApp: Назад
|
9
10
|
Busy: Зайнятих
|
10
11
|
Class: Клас
|
11
12
|
Connections: З'єднань
|
13
|
+
CreatedAt: Створено
|
12
14
|
CurrentMessagesInQueue: Поточні задачі у черзі <span class='title'>%{queue}</span>
|
13
15
|
Dashboard: Панель керування
|
14
16
|
Dead: Вбитих
|
15
17
|
DeadJobs: Вбиті задачі
|
16
18
|
Delete: Видалити
|
17
19
|
DeleteAll: Видалити усі
|
20
|
+
Deploy: Деплой
|
18
21
|
Enqueued: У черзі
|
19
22
|
Error: Помилка
|
20
23
|
ErrorBacktrace: Трасування помилки
|
21
24
|
ErrorClass: Клас помилки
|
22
25
|
ErrorMessage: Повідомлення про помилку
|
26
|
+
ExecutionTime: Час виконання
|
23
27
|
Extras: Додатково
|
24
28
|
Failed: Невдалих
|
25
29
|
Failures: Невдачі
|
30
|
+
Failure: Невдача
|
26
31
|
GoBack: ← Назад
|
27
32
|
History: Історія
|
28
33
|
Job: Задача
|
29
34
|
Jobs: Задачі
|
30
|
-
Kill:
|
35
|
+
Kill: Вбити
|
36
|
+
KillAll: Вбити все
|
31
37
|
LastRetry: Остання спроба
|
38
|
+
Latency: Затримка
|
32
39
|
LivePoll: Постійне опитування
|
33
40
|
MemoryUsage: Використання пам'яті
|
41
|
+
Name: Назва
|
34
42
|
Namespace: Простір імен
|
35
43
|
NextRetry: Наступна спроба
|
36
44
|
NoDeadJobsFound: Вбитих задач не знайдено
|
@@ -40,10 +48,12 @@ uk:
|
|
40
48
|
OneMonth: 1 місяць
|
41
49
|
OneWeek: 1 тиждень
|
42
50
|
OriginallyFailed: Перша невдала спроба
|
51
|
+
Pause: Призупинити
|
43
52
|
Paused: Призупинено
|
44
53
|
PeakMemoryUsage: Максимальне використання пам'яті
|
45
54
|
Plugins: Плагіни
|
46
55
|
PollingInterval: Інтервал опитування
|
56
|
+
Process: Процес
|
47
57
|
Processed: Опрацьовано
|
48
58
|
Processes: Процеси
|
49
59
|
Queue: Черга
|
@@ -57,6 +67,7 @@ uk:
|
|
57
67
|
RetryNow: Повторити зараз
|
58
68
|
Scheduled: Заплановано
|
59
69
|
ScheduledJobs: Заплановані задачі
|
70
|
+
Seconds: Секунди
|
60
71
|
ShowAll: Відобразити усі
|
61
72
|
SixMonths: 6 місяців
|
62
73
|
Size: Розмір
|
@@ -65,13 +76,25 @@ uk:
|
|
65
76
|
Stop: Зупинити
|
66
77
|
StopAll: Зупинити усі
|
67
78
|
StopPolling: Зупинити опитування
|
79
|
+
Success: Успіх
|
80
|
+
Summary: Підсумок
|
68
81
|
Thread: Потік
|
69
82
|
Threads: Потоки
|
70
83
|
ThreeMonths: 3 місяці
|
71
84
|
Time: Час
|
85
|
+
Unpause: Відновити
|
72
86
|
Uptime: Днів безперебійної роботи
|
87
|
+
Utilization: Утилізація
|
73
88
|
Version: Версія
|
74
89
|
When: Коли
|
75
90
|
Worker: Обробник
|
76
91
|
active: активний
|
77
92
|
idle: незайнятий
|
93
|
+
Metrics: Метрики
|
94
|
+
NoDataFound: Даних не знайдено
|
95
|
+
TotalExecutionTime: Загальний час виконання
|
96
|
+
AvgExecutionTime: Середній час виконання
|
97
|
+
Context: Контекст
|
98
|
+
NoJobMetricsFound: Недавніх метрик задачі не знайдено
|
99
|
+
Filter: Фільтр
|
100
|
+
AnyJobContent: Будь-який атрибут задачі
|
data/web/locales/zh-cn.yml
CHANGED
data/web/locales/zh-tw.yml
CHANGED
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
@@ -1,4 +1,4 @@
|
|
1
|
-
<script type="text/javascript" src="<%= root_path %>javascripts/dashboard.js"></script>
|
1
|
+
<script type="text/javascript" src="<%= root_path %>javascripts/dashboard.js" nonce="<%= csp_nonce %>"></script>
|
2
2
|
<div class= "dashboard clearfix">
|
3
3
|
<h3 >
|
4
4
|
<%= t('Dashboard') %>
|
@@ -9,13 +9,16 @@
|
|
9
9
|
</h3>
|
10
10
|
<div class="interval-slider ltr">
|
11
11
|
<span class="interval-slider-label"><%= t('PollingInterval') %>:</span>
|
12
|
-
<span id="sldr-text" class="current-interval">5
|
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'),
|
@@ -99,7 +102,7 @@
|
|
99
102
|
</div>
|
100
103
|
</div>
|
101
104
|
|
102
|
-
<script type="text/javascript" src="<%= root_path %>javascripts/chart.min.js"></script>
|
103
|
-
<script type="text/javascript" src="<%= root_path %>javascripts/chartjs-plugin-annotation.min.js"></script>
|
104
|
-
<script type="text/javascript" src="<%= root_path %>javascripts/base-charts.js"></script>
|
105
|
-
<script type="text/javascript" src="<%= root_path %>javascripts/dashboard-charts.js"></script>
|
105
|
+
<script type="text/javascript" src="<%= root_path %>javascripts/chart.min.js" nonce="<%= csp_nonce %>"></script>
|
106
|
+
<script type="text/javascript" src="<%= root_path %>javascripts/chartjs-plugin-annotation.min.js" nonce="<%= csp_nonce %>"></script>
|
107
|
+
<script type="text/javascript" src="<%= root_path %>javascripts/base-charts.js" nonce="<%= csp_nonce %>"></script>
|
108
|
+
<script type="text/javascript" src="<%= root_path %>javascripts/dashboard-charts.js" nonce="<%= csp_nonce %>"></script>
|
data/web/views/filtering.erb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
<div>
|
2
|
-
<form method="
|
3
|
-
<%= csrf_tag %>
|
2
|
+
<form method="get" class="form-inline" action='<%= root_path %><%= which %>'>
|
4
3
|
<label for="substr"><%= t('Filter') %></label>
|
5
4
|
<input class="search form-control" type="search" name="substr" value="<%= h params[:substr] %>" placeholder="<%= t('AnyJobContent') %>"/>
|
6
5
|
</form>
|
data/web/views/layout.erb
CHANGED
@@ -5,20 +5,20 @@
|
|
5
5
|
<meta charset="utf-8" />
|
6
6
|
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
|
7
7
|
|
8
|
-
<link href="<%= root_path %>stylesheets/bootstrap.css" media="screen" rel="stylesheet" type="text/css" />
|
8
|
+
<link href="<%= root_path %>stylesheets/bootstrap.css" media="screen" rel="stylesheet" type="text/css" nonce="<%= csp_nonce %>" />
|
9
9
|
<% if rtl? %>
|
10
|
-
<link href="<%= root_path %>stylesheets/bootstrap-rtl.min.css" media="screen" rel="stylesheet" type="text/css"/>
|
10
|
+
<link href="<%= root_path %>stylesheets/bootstrap-rtl.min.css" media="screen" rel="stylesheet" type="text/css" nonce="<%= csp_nonce %>"/>
|
11
11
|
<% end %>
|
12
12
|
|
13
|
-
<link href="<%= root_path %>stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />
|
14
|
-
<link href="<%= root_path %>stylesheets/application-dark.css" media="screen and (prefers-color-scheme: dark)" rel="stylesheet" type="text/css" />
|
13
|
+
<link href="<%= root_path %>stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" nonce="<%= csp_nonce %>" />
|
14
|
+
<link href="<%= root_path %>stylesheets/application-dark.css" media="screen and (prefers-color-scheme: dark)" rel="stylesheet" type="text/css" nonce="<%= csp_nonce %>" />
|
15
15
|
<% if rtl? %>
|
16
|
-
<link href="<%= root_path %>stylesheets/application-rtl.css" media="screen" rel="stylesheet" type="text/css" />
|
16
|
+
<link href="<%= root_path %>stylesheets/application-rtl.css" media="screen" rel="stylesheet" type="text/css" nonce="<%= csp_nonce %>" />
|
17
17
|
<% end %>
|
18
18
|
|
19
19
|
<link rel="apple-touch-icon" href="<%= root_path %>images/apple-touch-icon.png">
|
20
20
|
<link rel="shortcut icon" type="image/ico" href="<%= root_path %>images/favicon.ico" />
|
21
|
-
<script type="text/javascript" src="<%= root_path %>javascripts/application.js"></script>
|
21
|
+
<script type="text/javascript" src="<%= root_path %>javascripts/application.js" nonce="<%= csp_nonce %>"></script>
|
22
22
|
<meta name="google" content="notranslate" />
|
23
23
|
<%= display_custom_head %>
|
24
24
|
</head>
|
data/web/views/metrics.erb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
<script type="text/javascript" src="<%= root_path %>javascripts/chart.min.js"></script>
|
2
|
-
<script type="text/javascript" src="<%= root_path %>javascripts/chartjs-plugin-annotation.min.js"></script>
|
3
|
-
<script type="text/javascript" src="<%= root_path %>javascripts/base-charts.js"></script>
|
1
|
+
<script type="text/javascript" src="<%= root_path %>javascripts/chart.min.js" nonce="<%= csp_nonce %>"></script>
|
2
|
+
<script type="text/javascript" src="<%= root_path %>javascripts/chartjs-plugin-annotation.min.js" nonce="<%= csp_nonce %>"></script>
|
3
|
+
<script type="text/javascript" src="<%= root_path %>javascripts/base-charts.js" nonce="<%= csp_nonce %>"></script>
|
4
4
|
|
5
5
|
<div class="header-container">
|
6
6
|
<div class="page-title-container">
|
@@ -9,8 +9,7 @@
|
|
9
9
|
</div>
|
10
10
|
|
11
11
|
<div>
|
12
|
-
<form id="metrics-form" class="form-inline" action="<%= root_path %>
|
13
|
-
<%= csrf_tag %>
|
12
|
+
<form id="metrics-form" class="form-inline" action="<%= root_path %>metrics" method="get">
|
14
13
|
<label for="substr"><%= t('Filter') %></label>
|
15
14
|
<input id="class-filter" class="form-control" type="text" name="substr" placeholder="<%= t('Name') %>" value="<%= h params[:substr] %>">
|
16
15
|
<select id="period-selector" class="form-control" name="period">
|
@@ -54,8 +53,8 @@
|
|
54
53
|
<th><%= t('Name') %></th>
|
55
54
|
<th><%= t('Success') %></th>
|
56
55
|
<th><%= t('Failure') %></th>
|
57
|
-
<th><%= t('TotalExecutionTime') %> (Seconds)</th>
|
58
|
-
<th><%= t('AvgExecutionTime') %> (Seconds)</th>
|
56
|
+
<th><%= t('TotalExecutionTime') %> (<%= t('Seconds') %>)</th>
|
57
|
+
<th><%= t('AvgExecutionTime') %> (<%= t('Seconds') %>)</th>
|
59
58
|
</tr>
|
60
59
|
<% if job_results.any? %>
|
61
60
|
<% job_results.each_with_index do |(kls, jr), i| %>
|
@@ -88,4 +87,4 @@
|
|
88
87
|
|
89
88
|
<!--p><small>Data from <%= @query_result.starts_at %> to <%= @query_result.ends_at %></small></p-->
|
90
89
|
|
91
|
-
<script type="text/javascript" src="<%= root_path %>javascripts/metrics.js"></script>
|
90
|
+
<script type="text/javascript" src="<%= root_path %>javascripts/metrics.js" nonce="<%= csp_nonce %>"></script>
|
@@ -1,6 +1,6 @@
|
|
1
|
-
<script type="text/javascript" src="<%= root_path %>javascripts/chart.min.js"></script>
|
2
|
-
<script type="text/javascript" src="<%= root_path %>javascripts/chartjs-plugin-annotation.min.js"></script>
|
3
|
-
<script type="text/javascript" src="<%= root_path %>javascripts/base-charts.js"></script>
|
1
|
+
<script type="text/javascript" src="<%= root_path %>javascripts/chart.min.js" nonce="<%= csp_nonce %>"></script>
|
2
|
+
<script type="text/javascript" src="<%= root_path %>javascripts/chartjs-plugin-annotation.min.js" nonce="<%= csp_nonce %>"></script>
|
3
|
+
<script type="text/javascript" src="<%= root_path %>javascripts/base-charts.js" nonce="<%= csp_nonce %>"></script>
|
4
4
|
|
5
5
|
<%
|
6
6
|
job_result = @query_result.job_results[@name]
|
@@ -56,4 +56,4 @@
|
|
56
56
|
<div class="alert alert-success"><%= t('NoJobMetricsFound') %></div>
|
57
57
|
<% end %>
|
58
58
|
|
59
|
-
<script type="text/javascript" src="<%= root_path %>javascripts/metrics.js"></script>
|
59
|
+
<script type="text/javascript" src="<%= root_path %>javascripts/metrics.js" nonce="<%= csp_nonce %>"></script>
|
data/web/views/morgue.erb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
<% if @dead.size > 0 && @total_size > @count %>
|
4
4
|
<%= erb :_paging, locals: { url: "#{root_path}morgue" } %>
|
5
5
|
<% end %>
|
6
|
-
<%= filtering('
|
6
|
+
<%= filtering('morgue') %>
|
7
7
|
</div>
|
8
8
|
|
9
9
|
<% if @dead.size > 0 %>
|
@@ -40,7 +40,7 @@
|
|
40
40
|
</td>
|
41
41
|
<td>
|
42
42
|
<%= entry.display_class %>
|
43
|
-
<%= display_tags(entry, "
|
43
|
+
<%= display_tags(entry, "morgue") %>
|
44
44
|
</td>
|
45
45
|
<td>
|
46
46
|
<div class="args"><%= display_args(entry.display_args) %></div>
|
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.
|
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
|
@@ -16,14 +15,14 @@ dependencies:
|
|
16
15
|
requirements:
|
17
16
|
- - ">="
|
18
17
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
18
|
+
version: 0.22.2
|
20
19
|
type: :runtime
|
21
20
|
prerelease: false
|
22
21
|
version_requirements: !ruby/object:Gem::Requirement
|
23
22
|
requirements:
|
24
23
|
- - ">="
|
25
24
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
25
|
+
version: 0.22.2
|
27
26
|
- !ruby/object:Gem::Dependency
|
28
27
|
name: connection_pool
|
29
28
|
requirement: !ruby/object:Gem::Requirement
|
@@ -53,19 +52,33 @@ dependencies:
|
|
53
52
|
- !ruby/object:Gem::Version
|
54
53
|
version: 2.2.4
|
55
54
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
55
|
+
name: logger
|
57
56
|
requirement: !ruby/object:Gem::Requirement
|
58
57
|
requirements:
|
59
|
-
- - "
|
58
|
+
- - ">="
|
60
59
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
60
|
+
version: '0'
|
62
61
|
type: :runtime
|
63
62
|
prerelease: false
|
64
63
|
version_requirements: !ruby/object:Gem::Requirement
|
65
64
|
requirements:
|
66
|
-
- - "
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
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
|
+
- - ">="
|
67
80
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
81
|
+
version: '0'
|
69
82
|
description: Simple, efficient background processing for Ruby.
|
70
83
|
email:
|
71
84
|
- info@contribsys.com
|
@@ -82,6 +95,7 @@ files:
|
|
82
95
|
- bin/sidekiq
|
83
96
|
- bin/sidekiqload
|
84
97
|
- bin/sidekiqmon
|
98
|
+
- lib/active_job/queue_adapters/sidekiq_adapter.rb
|
85
99
|
- lib/generators/sidekiq/job_generator.rb
|
86
100
|
- lib/generators/sidekiq/templates/job.rb.erb
|
87
101
|
- lib/generators/sidekiq/templates/job_spec.rb.erb
|
@@ -96,7 +110,13 @@ files:
|
|
96
110
|
- lib/sidekiq/deploy.rb
|
97
111
|
- lib/sidekiq/embedded.rb
|
98
112
|
- lib/sidekiq/fetch.rb
|
113
|
+
- lib/sidekiq/iterable_job.rb
|
99
114
|
- lib/sidekiq/job.rb
|
115
|
+
- lib/sidekiq/job/interrupt_handler.rb
|
116
|
+
- lib/sidekiq/job/iterable.rb
|
117
|
+
- lib/sidekiq/job/iterable/active_record_enumerator.rb
|
118
|
+
- lib/sidekiq/job/iterable/csv_enumerator.rb
|
119
|
+
- lib/sidekiq/job/iterable/enumerators.rb
|
100
120
|
- lib/sidekiq/job_logger.rb
|
101
121
|
- lib/sidekiq/job_retry.rb
|
102
122
|
- lib/sidekiq/job_util.rb
|
@@ -172,6 +192,7 @@ files:
|
|
172
192
|
- web/locales/ru.yml
|
173
193
|
- web/locales/sv.yml
|
174
194
|
- web/locales/ta.yml
|
195
|
+
- web/locales/tr.yml
|
175
196
|
- web/locales/uk.yml
|
176
197
|
- web/locales/ur.yml
|
177
198
|
- web/locales/vi.yml
|
@@ -209,7 +230,6 @@ metadata:
|
|
209
230
|
changelog_uri: https://github.com/sidekiq/sidekiq/blob/main/Changes.md
|
210
231
|
source_code_uri: https://github.com/sidekiq/sidekiq
|
211
232
|
rubygems_mfa_required: 'true'
|
212
|
-
post_install_message:
|
213
233
|
rdoc_options: []
|
214
234
|
require_paths:
|
215
235
|
- lib
|
@@ -224,8 +244,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
224
244
|
- !ruby/object:Gem::Version
|
225
245
|
version: '0'
|
226
246
|
requirements: []
|
227
|
-
rubygems_version: 3.
|
228
|
-
signing_key:
|
247
|
+
rubygems_version: 3.6.2
|
229
248
|
specification_version: 4
|
230
249
|
summary: Simple, efficient background processing for Ruby
|
231
250
|
test_files: []
|