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.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/Changes.md +116 -0
  3. data/README.md +1 -1
  4. data/bin/sidekiqload +21 -12
  5. data/lib/active_job/queue_adapters/sidekiq_adapter.rb +75 -0
  6. data/lib/generators/sidekiq/job_generator.rb +2 -0
  7. data/lib/sidekiq/api.rb +63 -34
  8. data/lib/sidekiq/capsule.rb +8 -3
  9. data/lib/sidekiq/cli.rb +2 -1
  10. data/lib/sidekiq/client.rb +21 -1
  11. data/lib/sidekiq/component.rb +22 -0
  12. data/lib/sidekiq/config.rb +27 -3
  13. data/lib/sidekiq/deploy.rb +2 -0
  14. data/lib/sidekiq/embedded.rb +2 -0
  15. data/lib/sidekiq/fetch.rb +1 -1
  16. data/lib/sidekiq/iterable_job.rb +55 -0
  17. data/lib/sidekiq/job/interrupt_handler.rb +24 -0
  18. data/lib/sidekiq/job/iterable/active_record_enumerator.rb +53 -0
  19. data/lib/sidekiq/job/iterable/csv_enumerator.rb +47 -0
  20. data/lib/sidekiq/job/iterable/enumerators.rb +135 -0
  21. data/lib/sidekiq/job/iterable.rb +294 -0
  22. data/lib/sidekiq/job.rb +13 -2
  23. data/lib/sidekiq/job_logger.rb +7 -6
  24. data/lib/sidekiq/job_retry.rb +6 -1
  25. data/lib/sidekiq/job_util.rb +2 -0
  26. data/lib/sidekiq/launcher.rb +1 -1
  27. data/lib/sidekiq/metrics/query.rb +2 -0
  28. data/lib/sidekiq/metrics/shared.rb +15 -4
  29. data/lib/sidekiq/metrics/tracking.rb +13 -5
  30. data/lib/sidekiq/middleware/current_attributes.rb +46 -13
  31. data/lib/sidekiq/middleware/modules.rb +2 -0
  32. data/lib/sidekiq/monitor.rb +2 -1
  33. data/lib/sidekiq/paginator.rb +6 -0
  34. data/lib/sidekiq/processor.rb +20 -10
  35. data/lib/sidekiq/rails.rb +12 -0
  36. data/lib/sidekiq/redis_client_adapter.rb +8 -5
  37. data/lib/sidekiq/redis_connection.rb +33 -2
  38. data/lib/sidekiq/ring_buffer.rb +2 -0
  39. data/lib/sidekiq/systemd.rb +2 -0
  40. data/lib/sidekiq/testing.rb +5 -5
  41. data/lib/sidekiq/version.rb +5 -1
  42. data/lib/sidekiq/web/action.rb +21 -4
  43. data/lib/sidekiq/web/application.rb +43 -82
  44. data/lib/sidekiq/web/helpers.rb +62 -15
  45. data/lib/sidekiq/web/router.rb +5 -2
  46. data/lib/sidekiq/web.rb +54 -2
  47. data/lib/sidekiq.rb +5 -3
  48. data/sidekiq.gemspec +3 -2
  49. data/web/assets/javascripts/application.js +6 -1
  50. data/web/assets/javascripts/dashboard-charts.js +24 -12
  51. data/web/assets/javascripts/dashboard.js +7 -1
  52. data/web/assets/stylesheets/application.css +16 -3
  53. data/web/locales/en.yml +3 -1
  54. data/web/locales/fr.yml +0 -1
  55. data/web/locales/gd.yml +0 -1
  56. data/web/locales/it.yml +32 -1
  57. data/web/locales/ja.yml +0 -1
  58. data/web/locales/pt-br.yml +1 -2
  59. data/web/locales/tr.yml +100 -0
  60. data/web/locales/uk.yml +24 -1
  61. data/web/locales/zh-cn.yml +0 -1
  62. data/web/locales/zh-tw.yml +0 -1
  63. data/web/views/_footer.erb +1 -2
  64. data/web/views/dashboard.erb +10 -7
  65. data/web/views/filtering.erb +1 -2
  66. data/web/views/layout.erb +6 -6
  67. data/web/views/metrics.erb +7 -8
  68. data/web/views/metrics_for_job.erb +4 -4
  69. data/web/views/morgue.erb +2 -2
  70. data/web/views/queue.erb +1 -1
  71. 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: Thread
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
@@ -87,5 +87,4 @@ ja:
87
87
  TotalExecutionTime: 合計実行時間
88
88
  AvgExecutionTime: 平均実行時間
89
89
  Context: コンテキスト
90
- Bucket: バケット
91
90
  NoJobMetricsFound: 直近のジョブメトリクスが見つかりませんでした
@@ -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
@@ -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: Будь-який атрибут задачі
@@ -89,7 +89,6 @@ zh-cn: # <---- change this to your locale code
89
89
  TotalExecutionTime: 总执行时间
90
90
  AvgExecutionTime: 平均执行时间
91
91
  Context: 上下文
92
- Bucket: 桶
93
92
  NoJobMetricsFound: 无任务相关指标数据
94
93
  Success: 成功
95
94
  Failure: 失败
@@ -98,5 +98,4 @@ zh-tw: # <---- change this to your locale code
98
98
  TotalExecutionTime: 總執行時間
99
99
  AvgExecutionTime: 平均執行時間
100
100
  Context: 上下文
101
- Bucket: 桶
102
101
  NoJobMetricsFound: 找無工作相關計量資料
@@ -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
- <label class="sr-only" for="locale">Language</label>
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>
@@ -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 sec</span>
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>
@@ -1,6 +1,5 @@
1
1
  <div>
2
- <form method="post" class="form-inline" action='<%= root_path %>filter/<%= which %>'>
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>
@@ -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 %>filter/metrics" method="post">
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('dead') %>
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, "dead") %>
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
@@ -15,7 +15,7 @@
15
15
  <th><%= t('Job') %></th>
16
16
  <th><%= t('Arguments') %></th>
17
17
  <th><%= t('Context') %></th>
18
- <th></th>
18
+ <th><%= t('Actions') %></th>
19
19
  </thead>
20
20
  <% @jobs.each_with_index do |job, index| %>
21
21
  <tr title="<%= job.jid %>">
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.2.4
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: 2024-04-26 00:00:00.000000000 Z
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.19.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.19.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: concurrent-ruby
55
+ name: logger
57
56
  requirement: !ruby/object:Gem::Requirement
58
57
  requirements:
59
- - - "<"
58
+ - - ">="
60
59
  - !ruby/object:Gem::Version
61
- version: '2'
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: '2'
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.4.20
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: []