sidekiq 2.17.8 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of sidekiq might be problematic. Click here for more details.

Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/3.0-Upgrade.md +63 -0
  3. data/Changes.md +66 -3
  4. data/Contributing.md +1 -3
  5. data/Pro-Changes.md +18 -0
  6. data/README.md +2 -2
  7. data/bin/sidekiqctl +19 -6
  8. data/lib/sidekiq.rb +53 -11
  9. data/lib/sidekiq/actor.rb +1 -0
  10. data/lib/sidekiq/api.rb +145 -58
  11. data/lib/sidekiq/cli.rb +22 -18
  12. data/lib/sidekiq/client.rb +44 -14
  13. data/lib/sidekiq/core_ext.rb +5 -8
  14. data/lib/sidekiq/exception_handler.rb +19 -28
  15. data/lib/sidekiq/fetch.rb +3 -3
  16. data/lib/sidekiq/launcher.rb +30 -3
  17. data/lib/sidekiq/logging.rb +2 -2
  18. data/lib/sidekiq/manager.rb +19 -16
  19. data/lib/sidekiq/middleware/chain.rb +1 -1
  20. data/lib/sidekiq/middleware/i18n.rb +1 -1
  21. data/lib/sidekiq/middleware/server/retry_jobs.rb +23 -7
  22. data/lib/sidekiq/processor.rb +36 -54
  23. data/lib/sidekiq/redis_connection.rb +1 -3
  24. data/lib/sidekiq/util.rb +4 -4
  25. data/lib/sidekiq/version.rb +1 -1
  26. data/lib/sidekiq/web.rb +57 -8
  27. data/lib/sidekiq/web_helpers.rb +6 -15
  28. data/lib/sidekiq/worker.rb +3 -1
  29. data/sidekiq.gemspec +5 -5
  30. data/test/test_api.rb +59 -19
  31. data/test/test_cli.rb +1 -1
  32. data/test/test_client.rb +44 -5
  33. data/test/test_exception_handler.rb +4 -87
  34. data/test/test_middleware.rb +3 -2
  35. data/test/test_redis_connection.rb +0 -6
  36. data/test/test_retry.rb +13 -68
  37. data/test/test_scheduled.rb +1 -1
  38. data/test/test_scheduling.rb +5 -0
  39. data/test/test_sidekiq.rb +18 -0
  40. data/test/test_web.rb +98 -58
  41. data/web/assets/stylesheets/application.css +5 -0
  42. data/web/locales/cs.yml +68 -0
  43. data/web/locales/da.yml +9 -1
  44. data/web/locales/de.yml +15 -7
  45. data/web/locales/el.yml +68 -0
  46. data/web/locales/en.yml +8 -3
  47. data/web/locales/es.yml +9 -1
  48. data/web/locales/fr.yml +34 -26
  49. data/web/locales/it.yml +26 -18
  50. data/web/locales/ja.yml +8 -2
  51. data/web/locales/ko.yml +0 -2
  52. data/web/locales/nl.yml +8 -3
  53. data/web/locales/no.yml +9 -3
  54. data/web/locales/pl.yml +0 -1
  55. data/web/locales/pt-br.yml +11 -4
  56. data/web/locales/pt.yml +8 -1
  57. data/web/locales/ru.yml +29 -22
  58. data/web/locales/sv.yml +68 -0
  59. data/web/locales/zh-tw.yml +68 -0
  60. data/web/views/_job_info.erb +8 -2
  61. data/web/views/_summary.erb +13 -7
  62. data/web/views/busy.erb +55 -0
  63. data/web/views/dead.erb +30 -0
  64. data/web/views/layout.erb +1 -0
  65. data/web/views/morgue.erb +66 -0
  66. metadata +29 -30
  67. data/config.ru +0 -18
  68. data/lib/sidekiq/capistrano.rb +0 -5
  69. data/lib/sidekiq/capistrano2.rb +0 -54
  70. data/lib/sidekiq/tasks/sidekiq.rake +0 -119
  71. data/lib/sidekiq/yaml_patch.rb +0 -21
  72. data/test/test_util.rb +0 -18
  73. data/web/views/_workers.erb +0 -22
  74. data/web/views/workers.erb +0 -16
@@ -12,15 +12,14 @@ ja:
12
12
  Scheduled: 予定
13
13
  Retries: 再試行
14
14
  Enqueued: 待機状態
15
- ClearWorkerList: 動作中の作業を停止
16
15
  Worker: 動作中の作業
17
- Workers: 動作中の作業
18
16
  LivePoll: ポーリング開始
19
17
  StopPolling: ポーリング停止
20
18
  Queue: キュー
21
19
  Class: クラス
22
20
  Job: ジョブ
23
21
  Arguments: 引数
22
+ Extras: エクストラ
24
23
  Started: 開始
25
24
  ShowAll: 全て見せる
26
25
  CurrentMessagesInQueue: <span class='title'>%{queue}</span>に メッセージがあります
@@ -61,3 +60,10 @@ ja:
61
60
  SixMonths: 6 ヶ月
62
61
  Batches: バッチ
63
62
  Failures: 失敗
63
+ DeadJobs: 死んだジョブ
64
+ NoDeadJobsFound: 死んだジョブはありません
65
+ Dead: 死んだ
66
+ Processes: プロセス
67
+ Thread: スレッド
68
+ Threads: スレッド
69
+ Jobs: ジョブ
@@ -12,9 +12,7 @@ ko:
12
12
  Scheduled: 예약
13
13
  Retries: 재시도
14
14
  Enqueued: 대기 중
15
- ClearWorkerList: 워커 목록 비우기
16
15
  Worker: 워커
17
- Workers: 워커
18
16
  LivePoll: 폴링 시작
19
17
  StopPolling: 폴링 중단
20
18
  Queue: 큐
@@ -12,15 +12,14 @@ nl:
12
12
  Scheduled: Gepland
13
13
  Retries: Opnieuw proberen
14
14
  Enqueued: In de wachtrij
15
- ClearWorkerList: Werkerlijst legen
16
15
  Worker: Werker
17
- Workers: Werkers
18
16
  LivePoll: Live bijwerken
19
17
  StopPolling: Stop live bijwerken
20
18
  Queue: Wachtrij
21
19
  Class: Klasse
22
20
  Job: Taak
23
21
  Arguments: Argumenten
22
+ Extras: Extra's
24
23
  Started: Gestart
25
24
  ShowAll: Toon alle
26
25
  CurrentMessagesInQueue: Aantal berichten in <span class='title'>%{queue}</span>
@@ -59,5 +58,11 @@ nl:
59
58
  OneMonth: 1 maand
60
59
  ThreeMonths: 3 maanden
61
60
  SixMonths: 6 maanden
62
- Batches: Batches
63
61
  Failures: Mislukt
62
+ DeadJobs: Overleden taken
63
+ NoDeadJobsFound: Geen overleden taken gevonden
64
+ Dead: Overleden
65
+ Processes: Processen
66
+ Thread: Thread
67
+ Threads: Threads
68
+ Jobs: Taken
@@ -12,15 +12,14 @@ no:
12
12
  Scheduled: Planlagt
13
13
  Retries: Forsøk
14
14
  Enqueued: I kø
15
- ClearWorkerList: Nullstill jobbliste
16
15
  Worker: Arbeider
17
- Workers: Arbeidere
18
16
  LivePoll: Automatisk oppdatering
19
17
  StopPolling: Stopp automatisk oppdatering
20
18
  Queue: Kø
21
19
  Class: Klasse
22
20
  Job: Jobb
23
21
  Arguments: Argumenter
22
+ Extras: Ekstra
24
23
  Started: Startet
25
24
  ShowAll: Vis alle
26
25
  CurrentMessagesInQueue: Nåværende melding i <span class='title'>%{queue}</span>
@@ -60,4 +59,11 @@ no:
60
59
  ThreeMonths: 3 måneder
61
60
  SixMonths: 6 måneder
62
61
  Batches: Samlinger
63
- Failures: Mislykkeser
62
+ Failures: Feil
63
+ DeadJobs: Døde jobber
64
+ NoDeadJobsFound: Ingen døde jobber funnet
65
+ Dead: Død
66
+ Processes: Prosesser
67
+ Thread: Tråd
68
+ Threads: Tråder
69
+ Jobs: Jobber
@@ -13,7 +13,6 @@ pl:
13
13
  Retries: Prób
14
14
  Enqueued: Zakolejkowane
15
15
  Worker: Worker
16
- Workers: Workery
17
16
  LivePoll: Wczytuj na żywo
18
17
  StopPolling: Zatrzymaj wczytywanie na żywo
19
18
  Queue: Kolejka
@@ -13,7 +13,6 @@
13
13
  Retries: Tentativas
14
14
  Enqueued: Na fila
15
15
  Worker: Trabalhador
16
- Workers: Trabalhadores
17
16
  LivePoll: Live Poll
18
17
  StopPolling: Parar Polling
19
18
  Queue: Fila
@@ -23,7 +22,7 @@
23
22
  Extras: Extras
24
23
  Started: Iniciados
25
24
  ShowAll: Mostrar todos
26
- CurrentMessagesInQueue: Mensagens atualmenta na <span class='title'>%{queue}</span>
25
+ CurrentMessagesInQueue: Mensagens atualmente na <span class='title'>%{queue}</span>
27
26
  Delete: Apagar
28
27
  AddToQueue: Adicionar à fila
29
28
  AreYouSureDeleteJob: Deseja deletar esta tarefa?
@@ -32,7 +31,7 @@
32
31
  Size: Tamanho
33
32
  Actions: Ações
34
33
  NextRetry: Próxima Tentativa
35
- RetryCount: Retry Count
34
+ RetryCount: Número de Tentativas
36
35
  RetryNow: Tentar novamente agora
37
36
  LastRetry: Última tentativa
38
37
  OriginallyFailed: Falhou originalmente
@@ -54,8 +53,16 @@
54
53
  Connections: Conexões
55
54
  MemoryUsage: Uso de memória
56
55
  PeakMemoryUsage: Pico de uso de memória
57
- Uptime: Tempo rodando
56
+ Uptime: Dias rodando
58
57
  OneWeek: 1 semana
59
58
  OneMonth: 1 mês
60
59
  ThreeMonths: 3 meses
61
60
  SixMonths: 6 meses
61
+ Failures : Falhas
62
+ DeadJobs : Tarefas mortas
63
+ NoDeadJobsFound : Nenhuma tarefa morta foi encontrada
64
+ Dead : Morta
65
+ Processes : Processos
66
+ Thread : Thread
67
+ Threads : Threads
68
+ Jobs : Tarefas
@@ -13,7 +13,6 @@ pt:
13
13
  Retries: Tentativas
14
14
  Enqueued: Em espera
15
15
  Worker: Worker
16
- Workers: Workers
17
16
  LivePoll: Live Poll
18
17
  StopPolling: Desactivar Live Poll
19
18
  Queue: Fila
@@ -58,3 +57,11 @@ pt:
58
57
  OneMonth: 1 mês
59
58
  ThreeMonths: 3 meses
60
59
  SixMonths: 6 meses
60
+ Failures: Falhas
61
+ DeadJobs: Tarefas mortas
62
+ NoDeadJobsFound: Não foram encontradas tarefas mortas
63
+ Dead: Morto
64
+ Processes: Processos
65
+ Thread: Thread
66
+ Threads: Threads
67
+ Jobs: Tarefas
@@ -2,59 +2,66 @@ ru:
2
2
  Dashboard: Панель управления
3
3
  Status: Статус
4
4
  Time: Время
5
- Namespace: Пространство имен
5
+ Namespace: Пространоство имен
6
6
  Realtime: Сейчас
7
7
  History: История
8
8
  Busy: Занят
9
9
  Processed: Обработано
10
10
  Failed: Провалено
11
11
  Scheduled: Запланировано
12
- Retries: Попыток
12
+ Retries: Попытки
13
13
  Enqueued: В очереди
14
- ClearWorkerList: Очистить список обработчиков
15
14
  Worker: Обработчик
16
- Workers: Обработчики
17
15
  LivePoll: Постоянный опрос
18
16
  StopPolling: Остановить опрос
19
17
  Queue: Очередь
20
18
  Class: Класс
21
- Job: Задание
19
+ Job: Задача
22
20
  Arguments: Аргументы
21
+ Extras: Дополнительно
23
22
  Started: Запущено
24
23
  ShowAll: Показать все
25
- CurrentMessagesInQueue: Текущие сообщения в <span class='title'>%{queue}</span>
24
+ CurrentMessagesInQueue: Текущие задачи в очереди <span class='title'>%{queue}</span>
26
25
  Delete: Удалить
27
26
  AddToQueue: Добавить в очередь
28
- AreYouSureDeleteJob: Вы уверены в том, что хотите удалить задание?
29
- AreYouSureDeleteQueue: Вы уверены в том, что хотите удалить очередь %{queue}?
27
+ AreYouSureDeleteJob: Вы уверены, что хотите удалить эту задачу?
28
+ AreYouSureDeleteQueue: Вы уверены, что хотите удалить очередь %{queue}?
30
29
  Queues: Очереди
31
30
  Size: Размер
32
31
  Actions: Действия
33
32
  NextRetry: Следующая попытка
34
- RetryCount: Количество попыток
35
- RetryNow: Повторить немедленно
33
+ RetryCount: Кол-во попыток
34
+ RetryNow: Повторить сейчас
36
35
  LastRetry: Последняя попытка
37
- OriginallyFailed: Первоначально провалилось
36
+ OriginallyFailed: Первый провал
38
37
  AreYouSure: Вы уверены?
39
38
  DeleteAll: Удалить все
40
39
  RetryAll: Повторить все
41
- NoRetriesFound: Не зафиксировано попыток
40
+ NoRetriesFound: Нет попыток
42
41
  Error: Ошибка
43
42
  ErrorClass: Класс ошибки
44
43
  ErrorMessage: Сообщение об ошибке
45
- ErrorBacktrace: Трассировка ошибок
44
+ ErrorBacktrace: Трассировка ошибки
46
45
  GoBack: ← Назад
47
- NoScheduledFound: Не обнаружено запланированных заданий
46
+ NoScheduledFound: Нет запланированных задач
48
47
  When: Когда
49
- ScheduledJobs: Запланированные задания
50
- idle: бездействует
48
+ ScheduledJobs: Запланированные задачи
49
+ idle: отдыхает
51
50
  active: активен
52
51
  Version: Версия
53
- Connections: Соединений
54
- MemoryUsage: Расход памяти
52
+ Connections: Соединения
53
+ MemoryUsage: Использование памяти
55
54
  PeakMemoryUsage: Максимальный расход памяти
56
- Uptime: Uptime (в днях)
57
- OneWeek: неделя
58
- OneMonth: месяц
55
+ Uptime: Дня(ей) бесперебойной работы
56
+ OneWeek: 1 неделя
57
+ OneMonth: 1 месяц
59
58
  ThreeMonths: 3 месяца
60
- SixMonths: пол года
59
+ SixMonths: 6 месяцев
60
+ Failures: Провалы
61
+ DeadJobs: Убитые задачи
62
+ NoDeadJobsFound: Нет убитых задач
63
+ Dead: Убито
64
+ Processes: Процессы
65
+ Thread: Поток
66
+ Threads: Потоки
67
+ Jobs: Задачи
@@ -0,0 +1,68 @@
1
+ # elements like %{queue} are variables and should not be translated
2
+ sv: # <---- change this to your locale code
3
+ Dashboard: Panel
4
+ Status: Status
5
+ Time: Tid
6
+ Namespace: Namnrymd
7
+ Realtime: Realtid
8
+ History: Historik
9
+ Busy: Upptagen
10
+ Processed: Processerad
11
+ Failed: Misslyckad
12
+ Scheduled: Schemalagd
13
+ Retries: Försök
14
+ Enqueued: Köad
15
+ Worker: Worker
16
+ LivePoll: Live poll
17
+ StopPolling: Stoppa polling
18
+ Queue: Kö
19
+ Class: Klass
20
+ Job: Jobb
21
+ Arguments: Argument
22
+ Extras: Extra
23
+ Started: Startad
24
+ ShowAll: Visa alla
25
+ CurrentMessagesInQueue: Jobb i <span class='title'>%{queue}</span>
26
+ Delete: Ta bort
27
+ AddToQueue: Lägg till i kö
28
+ AreYouSureDeleteJob: Är du säker på att du vill ta bort detta jobb?
29
+ AreYouSureDeleteQueue: Är du säker på att du vill ta bort kön %{queue}?
30
+ Queues: Köer
31
+ Size: Storlek
32
+ Actions: Åtgärder
33
+ NextRetry: Nästa försök
34
+ RetryCount: Antal försök
35
+ RetryNow: Försök nu
36
+ LastRetry: Senaste försök
37
+ OriginallyFailed: Misslyckades ursprungligen
38
+ AreYouSure: Är du säker?
39
+ DeleteAll: Ta bort alla
40
+ RetryAll: Försök alla igen
41
+ NoRetriesFound: Inga försök hittades
42
+ Error: Fel
43
+ ErrorClass: Felklass
44
+ ErrorMessage: Felmeddelande
45
+ ErrorBacktrace: Backtrace för fel
46
+ GoBack: ← Bakåt
47
+ NoScheduledFound: Inga schemalagda jobb hittades
48
+ When: När
49
+ ScheduledJobs: Schemalagda jobb
50
+ idle: avvaktande
51
+ active: aktiv
52
+ Version: Version
53
+ Connections: Anslutningar
54
+ MemoryUsage: Minnesanvändning
55
+ PeakMemoryUsage: Minnesanvändning (peak)
56
+ Uptime: Upptid (dagar)
57
+ OneWeek: 1 vecka
58
+ OneMonth: 1 månad
59
+ ThreeMonths: 3 månader
60
+ SixMonths: 6 månader
61
+ Failures: Failures
62
+ DeadJobs: Döda jobb
63
+ NoDeadJobsFound: Inga döda jobb hittades
64
+ Dead: Död
65
+ Processes: Processer
66
+ Thread: Tråd
67
+ Threads: Trådar
68
+ Jobs: Jobb
@@ -0,0 +1,68 @@
1
+ # elements like %{queue} are variables and should not be translated
2
+ zh-tw: # <---- change this to your locale code
3
+ Dashboard: 資訊主頁
4
+ Status: 狀態
5
+ Time: 時間
6
+ Namespace: 命名空間
7
+ Realtime: 即時
8
+ History: 歷史資料
9
+ Busy: 忙碌
10
+ Processed: 已處理
11
+ Failed: 已失敗
12
+ Scheduled: 已排程
13
+ Retries: 重試
14
+ Enqueued: 已佇列
15
+ Worker: 工人
16
+ LivePoll: 即時輪詢
17
+ StopPolling: 停止輪詢
18
+ Queue: 佇列
19
+ Class: 類別
20
+ Job: 工作
21
+ Arguments: 參數
22
+ Extras: 額外的
23
+ Started: 已開始
24
+ ShowAll: 顯示全部
25
+ CurrentMessagesInQueue: 目前在<span class='title'>%{queue}</span>的工作
26
+ Delete: 刪除
27
+ AddToQueue: 增加至佇列
28
+ AreYouSureDeleteJob: 你確定要刪除這個工作嗎?
29
+ AreYouSureDeleteQueue: 你確定要刪除%{queue}這個佇列?
30
+ Queues: 佇列
31
+ Size: 容量
32
+ Actions: 動作
33
+ NextRetry: 下次重試
34
+ RetryCount: 重試次數
35
+ RetryNow: 馬上重試
36
+ LastRetry: 最後一次重試
37
+ OriginallyFailed: 原本已失敗
38
+ AreYouSure: 你確定?
39
+ DeleteAll: 刪除全部
40
+ RetryAll: 重試全部
41
+ NoRetriesFound: 沒有發現可重試
42
+ Error: 錯誤
43
+ ErrorClass: 錯誤類別
44
+ ErrorMessage: 錯誤訊息
45
+ ErrorBacktrace: 錯誤的回調追踨
46
+ GoBack: ← 返回
47
+ NoScheduledFound: 沒有發現已排程的工作
48
+ When: 當
49
+ ScheduledJobs: 已排程的工作
50
+ idle: 閒置
51
+ active: 活動中
52
+ Version: 版本
53
+ Connections: 連線
54
+ MemoryUsage: 記憶體使用量
55
+ PeakMemoryUsage: 尖峰記憶體使用量
56
+ Uptime: 上線時間 (天數)
57
+ OneWeek: 一週
58
+ OneMonth: 一個月
59
+ ThreeMonths: 三個月
60
+ SixMonths: 六個月
61
+ Failures: 失敗
62
+ DeadJobs: 停滯工作
63
+ NoDeadJobsFound: 沒有發現任何停滯的工作
64
+ Dead: 停滯
65
+ Processes: 處理中
66
+ Thread: 執行緒
67
+ Threads: 執行緒
68
+ Jobs: 工作
@@ -53,12 +53,12 @@
53
53
  </tr>
54
54
  <tr>
55
55
  <th><%= t('LastRetry') %></th>
56
- <td><%= relative_time(job['retried_at'].is_a?(Numeric) ? Time.at(job['retried_at']) : Time.parse(job['retried_at'])) %></td>
56
+ <td><%= relative_time(Time.at(job['retried_at'])) %></td>
57
57
  </tr>
58
58
  <% else %>
59
59
  <tr>
60
60
  <th><%= t('OriginallyFailed') %></th>
61
- <td><%= relative_time(job['failed_at'].is_a?(Numeric) ? Time.at(job['failed_at']) : Time.parse(job['failed_at'])) %></td>
61
+ <td><%= relative_time(Time.at(job['failed_at'])) %></td>
62
62
  </tr>
63
63
  <% end %>
64
64
  <tr>
@@ -72,5 +72,11 @@
72
72
  <td><%= relative_time(job.at) %></td>
73
73
  </tr>
74
74
  <% end %>
75
+ <% if type == :dead %>
76
+ <tr>
77
+ <th><%= t('LastRetry') %></th>
78
+ <td><%= relative_time(job.at) %></td>
79
+ </tr>
80
+ <% end %>
75
81
  </tbody>
76
82
  </table>
@@ -1,34 +1,40 @@
1
1
  <ul class="list-unstyled summary row">
2
- <li class="processed col-sm-2">
2
+ <li class="processed col-sm-1">
3
3
  <span class="count"><%= number_with_delimiter(stats.processed) %></span>
4
4
  <span class="desc"><%= t('Processed') %></span>
5
5
  </li>
6
- <li class="failed col-sm-2">
6
+ <li class="failed col-sm-1">
7
7
  <span class="count"><%= number_with_delimiter(stats.failed) %></span>
8
8
  <span class="desc"><%= t('Failed') %></span>
9
9
  </li>
10
- <li class="busy col-sm-2">
11
- <a href="<%= root_path %>workers">
10
+ <li class="busy col-sm-1">
11
+ <a href="<%= root_path %>busy">
12
12
  <span class="count"><%= number_with_delimiter(workers_size) %></span>
13
13
  <span class="desc"><%= t('Busy') %></span>
14
14
  </a>
15
15
  </li>
16
- <li class="enqueued col-sm-2">
16
+ <li class="enqueued col-sm-1">
17
17
  <a href="<%= root_path %>queues">
18
18
  <span class="count"><%= number_with_delimiter(stats.enqueued) %></span>
19
19
  <span class="desc"><%= t('Enqueued') %></span>
20
20
  </a>
21
21
  </li>
22
- <li class="retries col-sm-2">
22
+ <li class="retries col-sm-1">
23
23
  <a href="<%= root_path %>retries">
24
24
  <span class="count"><%= number_with_delimiter(stats.retry_size) %></span>
25
25
  <span class="desc"><%= t('Retries') %></span>
26
26
  </a>
27
27
  </li>
28
- <li class="scheduled col-sm-2">
28
+ <li class="scheduled col-sm-1">
29
29
  <a href="<%= root_path %>scheduled">
30
30
  <span class="count"><%= number_with_delimiter(stats.scheduled_size) %></span>
31
31
  <span class="desc"><%= t('Scheduled') %></span>
32
32
  </a>
33
33
  </li>
34
+ <li class="dead col-sm-1">
35
+ <a href="<%= root_path %>morgue">
36
+ <span class="count"><%= number_with_delimiter(stats.dead_size) %></span>
37
+ <span class="desc"><%= t('Dead') %></span>
38
+ </a>
39
+ </li>
34
40
  </ul>