sidekiq 4.2.4 → 5.2.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 (106) hide show
  1. checksums.yaml +4 -4
  2. data/.github/issue_template.md +8 -1
  3. data/.gitignore +1 -0
  4. data/.travis.yml +5 -3
  5. data/5.0-Upgrade.md +56 -0
  6. data/COMM-LICENSE +1 -1
  7. data/Changes.md +151 -0
  8. data/Ent-Changes.md +77 -2
  9. data/Gemfile +10 -25
  10. data/LICENSE +1 -1
  11. data/Pro-4.0-Upgrade.md +35 -0
  12. data/Pro-Changes.md +156 -2
  13. data/README.md +9 -6
  14. data/Rakefile +1 -2
  15. data/bin/sidekiqctl +1 -1
  16. data/bin/sidekiqload +15 -33
  17. data/lib/generators/sidekiq/templates/worker_spec.rb.erb +1 -1
  18. data/lib/generators/sidekiq/templates/worker_test.rb.erb +1 -1
  19. data/lib/sidekiq/api.rb +157 -67
  20. data/lib/sidekiq/cli.rb +71 -26
  21. data/lib/sidekiq/client.rb +25 -18
  22. data/lib/sidekiq/core_ext.rb +1 -106
  23. data/lib/sidekiq/delay.rb +42 -0
  24. data/lib/sidekiq/exception_handler.rb +2 -4
  25. data/lib/sidekiq/extensions/generic_proxy.rb +7 -1
  26. data/lib/sidekiq/fetch.rb +1 -1
  27. data/lib/sidekiq/job_logger.rb +25 -0
  28. data/lib/sidekiq/job_retry.rb +241 -0
  29. data/lib/sidekiq/launcher.rb +45 -37
  30. data/lib/sidekiq/logging.rb +18 -2
  31. data/lib/sidekiq/manager.rb +3 -4
  32. data/lib/sidekiq/middleware/server/active_record.rb +10 -0
  33. data/lib/sidekiq/processor.rb +91 -34
  34. data/lib/sidekiq/rails.rb +15 -51
  35. data/lib/sidekiq/redis_connection.rb +31 -5
  36. data/lib/sidekiq/scheduled.rb +35 -8
  37. data/lib/sidekiq/testing.rb +24 -7
  38. data/lib/sidekiq/util.rb +6 -2
  39. data/lib/sidekiq/version.rb +1 -1
  40. data/lib/sidekiq/web/action.rb +2 -6
  41. data/lib/sidekiq/web/application.rb +28 -21
  42. data/lib/sidekiq/web/helpers.rb +67 -23
  43. data/lib/sidekiq/web/router.rb +14 -10
  44. data/lib/sidekiq/web.rb +4 -4
  45. data/lib/sidekiq/worker.rb +97 -14
  46. data/lib/sidekiq.rb +23 -24
  47. data/sidekiq.gemspec +7 -10
  48. data/web/assets/javascripts/application.js +0 -0
  49. data/web/assets/javascripts/dashboard.js +18 -13
  50. data/web/assets/stylesheets/application-rtl.css +246 -0
  51. data/web/assets/stylesheets/application.css +336 -4
  52. data/web/assets/stylesheets/bootstrap-rtl.min.css +9 -0
  53. data/web/assets/stylesheets/bootstrap.css +2 -2
  54. data/web/locales/ar.yml +80 -0
  55. data/web/locales/en.yml +1 -0
  56. data/web/locales/es.yml +4 -3
  57. data/web/locales/fa.yml +80 -0
  58. data/web/locales/he.yml +79 -0
  59. data/web/locales/ja.yml +5 -3
  60. data/web/locales/ur.yml +80 -0
  61. data/web/views/_footer.erb +5 -2
  62. data/web/views/_job_info.erb +1 -1
  63. data/web/views/_nav.erb +1 -1
  64. data/web/views/_paging.erb +1 -1
  65. data/web/views/busy.erb +9 -5
  66. data/web/views/dashboard.erb +3 -3
  67. data/web/views/layout.erb +11 -2
  68. data/web/views/morgue.erb +14 -10
  69. data/web/views/queue.erb +10 -10
  70. data/web/views/queues.erb +4 -2
  71. data/web/views/retries.erb +13 -11
  72. data/web/views/retry.erb +1 -1
  73. data/web/views/scheduled.erb +2 -2
  74. metadata +26 -160
  75. data/lib/sidekiq/middleware/server/logging.rb +0 -40
  76. data/lib/sidekiq/middleware/server/retry_jobs.rb +0 -205
  77. data/test/config.yml +0 -9
  78. data/test/env_based_config.yml +0 -11
  79. data/test/fake_env.rb +0 -1
  80. data/test/fixtures/en.yml +0 -2
  81. data/test/helper.rb +0 -75
  82. data/test/test_actors.rb +0 -138
  83. data/test/test_api.rb +0 -528
  84. data/test/test_cli.rb +0 -418
  85. data/test/test_client.rb +0 -266
  86. data/test/test_exception_handler.rb +0 -56
  87. data/test/test_extensions.rb +0 -127
  88. data/test/test_fetch.rb +0 -50
  89. data/test/test_launcher.rb +0 -95
  90. data/test/test_logging.rb +0 -35
  91. data/test/test_manager.rb +0 -50
  92. data/test/test_middleware.rb +0 -158
  93. data/test/test_processor.rb +0 -235
  94. data/test/test_rails.rb +0 -22
  95. data/test/test_redis_connection.rb +0 -132
  96. data/test/test_retry.rb +0 -326
  97. data/test/test_retry_exhausted.rb +0 -149
  98. data/test/test_scheduled.rb +0 -115
  99. data/test/test_scheduling.rb +0 -58
  100. data/test/test_sidekiq.rb +0 -107
  101. data/test/test_testing.rb +0 -143
  102. data/test/test_testing_fake.rb +0 -357
  103. data/test/test_testing_inline.rb +0 -94
  104. data/test/test_util.rb +0 -13
  105. data/test/test_web.rb +0 -726
  106. data/test/test_web_helpers.rb +0 -54
@@ -0,0 +1,80 @@
1
+ # elements like %{queue} are variables and should not be translated
2
+ ar:
3
+ TextDirection: 'rtl'
4
+ Dashboard: لوحة التحكم
5
+ Status: حالة
6
+ Time: وقت
7
+ Namespace: مساحة الاسم
8
+ Realtime: الزمن الفعلي
9
+ History: تاريخ
10
+ Busy: مشغول
11
+ Processed: تمت المعالجة
12
+ Failed: فشل
13
+ Scheduled: مجدول
14
+ Retries: إعادة محاولة
15
+ Enqueued: في الرتل
16
+ Worker: عامل
17
+ LivePoll: استعلام مباشر
18
+ StopPolling: إيقاف الاستعلامات
19
+ Queue: رتل
20
+ Class: نوع
21
+ Job: وظيفة
22
+ Arguments: مدخلات
23
+ Extras: إضافات
24
+ Started: بدأت
25
+ ShowAll: عرض الكل
26
+ CurrentMessagesInQueue: الرسائل الحالية في الرتل <span class='title'>%{queue}</span>
27
+ AddToQueue: إضافة إلى الرتل
28
+ AreYouSureDeleteJob: هل أنت متأكد من حذف الوظيفة؟
29
+ AreYouSureDeleteQueue: هل أنت متأكد من حذف الرتل %{queue}؟
30
+ Delete: حذف
31
+ Queues: أرتال
32
+ Size: حجم
33
+ Actions: إجراءات
34
+ NextRetry: إعادة المحاولة القادمة
35
+ RetryCount: عدد مرات إعادة المحاولة
36
+ RetryNow: إعادة المحاولة الآن
37
+ Kill: إبطال
38
+ LastRetry: إعادة المحاولة الأخيرة
39
+ OriginallyFailed: فشل أصلا
40
+ AreYouSure: هل انت متأكد؟
41
+ DeleteAll: حذف الكل
42
+ RetryAll: إعادة المحاولة للكل
43
+ NoRetriesFound: لاتوجد أي إعادة محاولة
44
+ Error: خطأ
45
+ ErrorClass: نوع الخطأ
46
+ ErrorMessage: رسالة الخطأ
47
+ ErrorBacktrace: تتبع الخطأ
48
+ GoBack: إلى الخلف
49
+ NoScheduledFound: لايوجد وظائف مجدولة
50
+ When: متى
51
+ ScheduledJobs: وظائف مجدولة
52
+ idle: خامل
53
+ active: نشيط
54
+ Version: إصدار
55
+ Connections: اتصالات
56
+ MemoryUsage: استخدام الذاكرة
57
+ PeakMemoryUsage: ذروة استخدام الذاكرة
58
+ Uptime: زمن العمل
59
+ OneWeek: أسبوع
60
+ OneMonth: شهر
61
+ ThreeMonths: ثلاثة أشهر
62
+ SixMonths: ستة أشهر
63
+ Failures: فشل
64
+ DeadJobs: وظائف ميتة
65
+ NoDeadJobsFound: لاتوجد وظائف ميتة
66
+ Dead: ميتة
67
+ Processes: عمليات
68
+ Thread: نيسب
69
+ Threads: نياسب
70
+ Jobs: وظائف
71
+ Paused: إيقاف مؤقت
72
+ Stop: إيقاف
73
+ Quiet: هدوء
74
+ StopAll: إيقاف الكل
75
+ QuietAll: هدوء الكل
76
+ PollingInterval: الفاصل الزمني بين الاستعلامات
77
+ Plugins: الإضافات
78
+ NotYetEnqueued: لم تدخل الرتل بعد
79
+ CreatedAt: أنشئت في
80
+ BackToApp: العودة إلى التطبيق
data/web/locales/en.yml CHANGED
@@ -77,3 +77,4 @@ en: # <---- change this to your locale code
77
77
  NotYetEnqueued: Not yet enqueued
78
78
  CreatedAt: Created At
79
79
  BackToApp: Back to App
80
+ Latency: Latency
data/web/locales/es.yml CHANGED
@@ -11,11 +11,11 @@ es:
11
11
  Failed: Fallidas
12
12
  Scheduled: Programadas
13
13
  Retries: Reintentos
14
- Enqueued: En Fila
14
+ Enqueued: En Cola
15
15
  Worker: Trabajador
16
16
  LivePoll: Sondeo en Vivo
17
17
  StopPolling: Detener Sondeo
18
- Queue: Fila
18
+ Queue: Cola
19
19
  Class: Clase
20
20
  Job: Trabajo
21
21
  Arguments: Argumentos
@@ -27,7 +27,7 @@ es:
27
27
  AddToQueue: Añadir a fila
28
28
  AreYouSureDeleteJob: ¿Estás seguro de eliminar este trabajo?
29
29
  AreYouSureDeleteQueue: ¿Estás seguro de eliminar la fila %{queue}?
30
- Queues: Filas
30
+ Queues: Colas
31
31
  Size: Tamaño
32
32
  Actions: Acciones
33
33
  NextRetry: Siguiente Intento
@@ -67,3 +67,4 @@ es:
67
67
  Thread: Hilo
68
68
  Threads: Hilos
69
69
  Jobs: Trabajos
70
+ Latency: Latencia
@@ -0,0 +1,80 @@
1
+ # elements like %{queue} are variables and should not be translated
2
+ fa: # <---- change this to your locale code
3
+ TextDirection: 'rtl'
4
+ Dashboard: داشبورد
5
+ Status: اعلان
6
+ Time: رمان
7
+ Namespace: فضای نام
8
+ Realtime: زنده
9
+ History: تاریخچه
10
+ Busy: مشغول
11
+ Processed: پردازش شده
12
+ Failed: ناموفق
13
+ Scheduled: زمان بندی
14
+ Retries: تکرار
15
+ Enqueued: صف بندی نشدند
16
+ Worker: کارگزار
17
+ LivePoll: Live Poll
18
+ StopPolling: Stop Polling
19
+ Queue: صف
20
+ Class: کلاس
21
+ Job: کار
22
+ Arguments: آرگومنت
23
+ Extras: اضافی
24
+ Started: شروع شده
25
+ ShowAll: نمایش همه
26
+ CurrentMessagesInQueue: کار فعلی در <span class='title'>%{queue}</span>
27
+ Delete: حذف
28
+ AddToQueue: افزودن به صف
29
+ AreYouSureDeleteJob: آیا شما مطمعن هستید از حذف این کار ؟
30
+ AreYouSureDeleteQueue: ایا شما مطمعنید از حذف %{queue} ?
31
+ Queues: صف ها
32
+ Size: سایز
33
+ Actions: اعمال
34
+ NextRetry: بار دیگر تلاش کنید
35
+ RetryCount: تعداد تلاش ها
36
+ RetryNow: تلاش مجدد
37
+ Kill: کشتن
38
+ LastRetry: آخرین تلاش
39
+ OriginallyFailed: Originally Failed
40
+ AreYouSure: آیا مطمعن هستید?
41
+ DeleteAll: حذف همه
42
+ RetryAll: تلاش مجدد برای همه
43
+ NoRetriesFound: هیچ تلاش پیدا نشد
44
+ Error: خطا
45
+ ErrorClass: خطا کلاس
46
+ ErrorMessage: پیغام خطا
47
+ ErrorBacktrace: خطای معکوس
48
+ GoBack: ← برگشت
49
+ NoScheduledFound: هیچ کار برنامه ریزی شده ای یافت نشد
50
+ When: وقتی که
51
+ ScheduledJobs: کار برنامه ریزی شده
52
+ idle: بیهودی
53
+ active: فعال
54
+ Version: ورژن
55
+ Connections: ارتباطات
56
+ MemoryUsage: حافظه استفاده شده
57
+ PeakMemoryUsage: اوج حافظه استفاده شده
58
+ Uptime: آپ تایم (روز)
59
+ OneWeek: ۱ هفته
60
+ OneMonth: ۱ ماه
61
+ ThreeMonths: ۳ ماه
62
+ SixMonths: ۶ ماه
63
+ Failures: شکست ها
64
+ DeadJobs: کار مرده
65
+ NoDeadJobsFound: کار مرده ای یافت نشد
66
+ Dead: مرده
67
+ Processes: پردازش ها
68
+ Thread: رشته
69
+ Threads: رشته ها
70
+ Jobs: کار ها
71
+ Paused: مکث
72
+ Stop: توقف
73
+ Quiet: خروج
74
+ StopAll: توقف همه
75
+ QuietAll: خروج همه
76
+ PollingInterval: Polling interval
77
+ Plugins: پلاگین ها
78
+ NotYetEnqueued: بدون صف بندی
79
+ CreatedAt: ساخته شده در
80
+ BackToApp: برگشت به برنامه
@@ -0,0 +1,79 @@
1
+ he:
2
+ TextDirection: 'rtl'
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
+ Kill: הרוג
37
+ LastRetry: ניסיון חוזר אחרון
38
+ OriginallyFailed: נכשל בניסיון הראשון
39
+ AreYouSure: אתם בטוחים?
40
+ DeleteAll: מחק הכל
41
+ RetryAll: נסה שוב את הכל
42
+ NoRetriesFound: לא נמצאו נסיונות חוזרים
43
+ Error: שגיאה
44
+ ErrorClass: סוג השגיאה
45
+ ErrorMessage: הודעת השגיאה
46
+ ErrorBacktrace: מעקב לאחור של השגיאה
47
+ GoBack: ← אחורה
48
+ NoScheduledFound: לא נמצאו עבודות מתוכננות
49
+ When: מתי
50
+ ScheduledJobs: עבודות מתוכננות
51
+ idle: במנוחה
52
+ active: פעיל
53
+ Version: גירסה
54
+ Connections: חיבורים
55
+ MemoryUsage: שימוש בזיכרון
56
+ PeakMemoryUsage: שיא השימוש בזיכרון
57
+ Uptime: זמן פעילות (ימים)
58
+ OneWeek: שבוע 1
59
+ OneMonth: חודש 1
60
+ ThreeMonths: 3 חדשים
61
+ SixMonths: 6 חדשים
62
+ Failures: כשלונות
63
+ DeadJobs: עבודות מתות
64
+ NoDeadJobsFound: לא נמצאו עבודות מתות
65
+ Dead: מתים
66
+ Processes: תהליכים
67
+ Thread: חוט
68
+ Threads: חוטים
69
+ Jobs: עבודות
70
+ Paused: הופסקו
71
+ Stop: עצור
72
+ Quiet: שקט
73
+ StopAll: עצור הכל
74
+ QuietAll: השקט את כולם
75
+ PollingInterval: מרווח זמן בין תשאולים
76
+ Plugins: תוספים
77
+ NotYetEnqueued: עוד לא בתור
78
+ CreatedAt: נוצר ב
79
+ BackToApp: חזרה לאפליקציה
data/web/locales/ja.yml CHANGED
@@ -60,9 +60,9 @@ ja:
60
60
  SixMonths: 6 ヶ月
61
61
  Batches: バッチ
62
62
  Failures: 失敗
63
- DeadJobs: 死亡したジョブ
64
- NoDeadJobsFound: 死亡したジョブはありません
65
- Dead: 死亡
63
+ DeadJobs: デッドジョブ
64
+ NoDeadJobsFound: デッドジョブはありません
65
+ Dead: デッド
66
66
  Processes: プロセス
67
67
  Thread: スレッド
68
68
  Threads: スレッド
@@ -76,3 +76,5 @@ ja:
76
76
  Plugins: プラグイン
77
77
  NotYetEnqueued: キューに入っていません
78
78
  CreatedAt: 作成日時
79
+ BackToApp: アプリに戻る
80
+ Latency: レイテンシ
@@ -0,0 +1,80 @@
1
+ # elements like %{queue} are variables and should not be translated
2
+ ur:
3
+ TextDirection: 'rtl'
4
+ Dashboard: صفحۂ اول
5
+ Status: اسٹیٹس
6
+ Time: ﻭﻗﺖ
7
+ Namespace: Namespace
8
+ Realtime: ﺑﺮاﮦ ﺭاﺳﺖ
9
+ History: ﺗﺎﺭﻳﺦ
10
+ Busy: مصروف
11
+ Processed: مکمل شدہ
12
+ Failed: ﻧﺎکاﻡ ﺷﺪﮦ
13
+ Scheduled: ﻁےﺷﺪﮦ
14
+ Retries: ﺩﻭﺑﺎﺭﮦ کﻭﺷﻴﺶ
15
+ Enqueued: قطار ميں شامل
16
+ Worker: ورکر
17
+ LivePoll: ﺑﺮاﮦ ﺭاﺳﺖ
18
+ StopPolling: ﺑﺮاﮦ ﺭاﺳﺖ روکيے
19
+ Queue: قطار
20
+ Class: کلاس
21
+ Job: جاب
22
+ Arguments: دلائل
23
+ Extras: اﺻﺎﻑی
24
+ Started: شروع
25
+ ShowAll: سارے دکھاو
26
+ CurrentMessagesInQueue: قطار ميں موجود تمام پيغامات <span class='title'>%{queue}</span>
27
+ AddToQueue: ﻗﻄﺎﺭ ميں شامل کريں
28
+ AreYouSureDeleteJob: کيا آپ یقین جاب حتم کرنا چاھتے ہيں ؟
29
+ AreYouSureDeleteQueue: کيا آپ یقین قطار حتم کرنا چاھتے ہيں ؟
30
+ Delete: ﺣﺬﻑ
31
+ Queues: قطاريں
32
+ Size: ﺣﺠﻢ
33
+ Actions: ﻋﻮاﻣﻞ
34
+ NextRetry: اگلی کﻭﺷﻴﺶ
35
+ RetryCount: دوبارہ کوشش کا مکمل شمار
36
+ RetryNow: ابھی دوبارہ کوشش
37
+ Kill: ختم کرديں
38
+ LastRetry: گزشتہ کوشش
39
+ OriginallyFailed: ابتادائ ناکامی
40
+ AreYouSure: کيا یقین ؟
41
+ DeleteAll: ﺗﻤﺎﻡ ﺣﺬﻑ کر ديں
42
+ RetryAll: ﺗﻤﺎﻡ کی ﺩﻭﺑﺎﺭﮦ کﻭﺷﻴﺶ کﺭيں
43
+ NoRetriesFound: کویٔ ﺩﻭﺑﺎﺭﮦ کﻭﺷﻴﺶ نھيں ملی
44
+ Error: مسئلہ
45
+ ErrorClass: مسئلہ کی کلاس
46
+ ErrorMessage: مسئلہ کی وجہ
47
+ ErrorBacktrace: مسئلہ کی کی تحقیقات کريں
48
+ GoBack: واپس جايں
49
+ NoScheduledFound: کویٔ ﻁےﺷﺪﮦچيز نہیں ملی
50
+ When: ﺏک
51
+ ScheduledJobs: ﻁےﺷﺪﮦجاب
52
+ idle: بیکار
53
+ active: فعال
54
+ Version: ورژن
55
+ Connections: کنکشنز
56
+ MemoryUsage: یاداشت کا استعمال
57
+ PeakMemoryUsage: سب سے زيادہ یاداشت کا استعمال
58
+ Uptime: اپ ٹائم
59
+ OneWeek: ایک ہفتہ
60
+ OneMonth: ایک مہینہ
61
+ ThreeMonths: تین ماہ
62
+ SixMonths: چھ ماہ
63
+ Failures: ناکامیاں
64
+ DeadJobs: ختم شدہ جاب
65
+ NoDeadJobsFound: کویٔ ختم شدہ جاب نہيی ملی
66
+ Dead: ختم شدہ
67
+ Processes: ﻋﻤﻠﻴﺎﺕ
68
+ Thread: موضوع
69
+ Threads: موضوع
70
+ Jobs: جابز
71
+ Paused: موقوف
72
+ Stop: بند کرو
73
+ Quiet: ﺣﺘﻢ کﺭﻭ
74
+ StopAll: ﺗﻤﺎﻡ ﺑﻨﺪ کﺭﻭ
75
+ QuietAll: ﺗﻤﺎﻡ ﺣﺘﻢ کﺭﻭ
76
+ PollingInterval: ﺑﺮاﮦ ﺭاﺳﺖ کا ﺩﻭﺭاﻧﻴﮧ
77
+ Plugins: پلگ انز
78
+ NotYetEnqueued: ﻗﺘﺎﺭميں شامل نھيں
79
+ CreatedAt: ﺗﺎﺭﻳﺢ آﻏﺎﺯ
80
+ BackToApp: ﻭاپﺱ صفحۂ اﻭﻝ پر
@@ -1,4 +1,4 @@
1
- <div class="navbar navbar-fixed-bottom navbar-inverse">
1
+ <div class="navbar navbar-fixed-bottom navbar-inverse ltr">
2
2
  <div class="navbar-inner">
3
3
  <div class="container text-center">
4
4
  <ul class="nav">
@@ -9,7 +9,10 @@
9
9
  <p class="navbar-text redis-url" title="<%= redis_connection_and_namespace %>"><%= redis_connection_and_namespace %></p>
10
10
  </li>
11
11
  <li>
12
- <p class="navbar-text"><%= Time.now.utc.strftime('%H:%M:%S UTC') %></p>
12
+ <p class="navbar-text server-utc-time"><%= server_utc_time %></p>
13
+ </li>
14
+ <li>
15
+ <p class="navbar-text"><a style="color: gray;" href="https://github.com/mperham/sidekiq/wiki">docs</a></p>
13
16
  </li>
14
17
  </ul>
15
18
  </div>
@@ -80,7 +80,7 @@
80
80
  <% if type == :dead %>
81
81
  <tr>
82
82
  <th><%= t('LastRetry') %></th>
83
- <td><%= relative_time(job.at) %></td>
83
+ <td><%= relative_time(job.at) if job['retry_count'] %></td>
84
84
  </tr>
85
85
  <% end %>
86
86
  </tbody>
data/web/views/_nav.erb CHANGED
@@ -53,7 +53,7 @@
53
53
  </ul>
54
54
  <ul class="nav navbar-nav navbar-right navbar-livereload" data-navbar="static">
55
55
  <li>
56
- <div class="poll-wrapper pull-right">
56
+ <div class="poll-wrapper">
57
57
  <%= erb :_poll_link %>
58
58
  <% if Sidekiq::Web.app_url %>
59
59
  <a class="btn btn-inverse" href="<%= Sidekiq::Web.app_url %>"><%= t('BackToApp') %></a>
@@ -1,5 +1,5 @@
1
1
  <% if @total_size > @count %>
2
- <ul class="pagination pull-right">
2
+ <ul class="pagination pull-right flip">
3
3
  <li class="<%= 'disabled' if @current_page == 1 %>">
4
4
  <a href="<%= url %>?page=1">&laquo;</a>
5
5
  </li>
data/web/views/busy.erb CHANGED
@@ -1,11 +1,11 @@
1
1
  <div class="row header">
2
- <div class="col-sm-8 pull-left">
2
+ <div class="col-sm-8 pull-left flip">
3
3
  <h3><%= t('Processes') %></h3>
4
4
  </div>
5
- <div class="col-sm-4 pull-right">
5
+ <div class="col-sm-4 pull-right flip">
6
6
  <form method="POST" class="warning-messages">
7
7
  <%= csrf_tag %>
8
- <div class="btn-group pull-right">
8
+ <div class="btn-group pull-right flip">
9
9
  <button class="btn btn-warn" type="submit" name="quiet" value="1" data-confirm="<%= t('AreYouSure') %>"><%= t('QuietAll') %></button>
10
10
  <button class="btn btn-danger" type="submit" name="stop" value="1" data-confirm="<%= t('AreYouSure') %>"><%= t('StopAll') %></button>
11
11
  </div>
@@ -22,6 +22,7 @@
22
22
  <th><%= t('Busy') %></th>
23
23
  <th>&nbsp;</th>
24
24
  </thead>
25
+ <% lead = processes.leader %>
25
26
  <% processes.each do |process| %>
26
27
  <tr>
27
28
  <td class="box">
@@ -31,7 +32,10 @@
31
32
  <span class="label label-info"><%= label %></span>
32
33
  <% end %>
33
34
  <% if process.stopping? %>
34
- <span class="label label-danger">Quiet</span>
35
+ <span class="label label-danger">quiet</span>
36
+ <% end %>
37
+ <% if process.identity == lead %>
38
+ <span class="label label-warning">leader</span>
35
39
  <% end %>
36
40
  <br>
37
41
  <b><%= "#{t('Queues')}: " %></b>
@@ -41,7 +45,7 @@
41
45
  <td><%= process['concurrency'] %></td>
42
46
  <td><%= process['busy'] %></td>
43
47
  <td>
44
- <div class="btn-group pull-right">
48
+ <div class="btn-group pull-right flip">
45
49
  <form method="POST">
46
50
  <%= csrf_tag %>
47
51
  <input type="hidden" name="identity" value="<%= process['identity'] %>"/>
@@ -7,11 +7,11 @@
7
7
  <span class="dot"></span>
8
8
  </span>
9
9
  </h3>
10
- <div class="interval-slider">
10
+ <div class="interval-slider ltr">
11
11
  <span class="interval-slider-label"><%= t('PollingInterval') %>:</span>
12
- <span class="current-interval">2 sec</span>
12
+ <span class="current-interval">5 sec</span>
13
13
  <br/>
14
- <input type="range" min="2000" max="20000" step="1000" value="2000"/>
14
+ <input type="range" min="2000" max="20000" step="1000" value="5000"/>
15
15
  </div>
16
16
  </div>
17
17
 
data/web/views/layout.erb CHANGED
@@ -1,11 +1,20 @@
1
1
  <!doctype html>
2
- <html>
2
+ <html dir="<%= text_direction %>">
3
3
  <head>
4
4
  <title><%= environment_title_prefix %><%= Sidekiq::NAME %></title>
5
- <meta charset="utf8" />
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" />
9
+ <% if rtl? %>
10
+ <link href="<%= root_path %>stylesheets/bootstrap-rtl.min.css" media="screen" rel="stylesheet" type="text/css"/>
11
+ <% end %>
12
+
8
13
  <link href="<%= root_path %>stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />
14
+ <% if rtl? %>
15
+ <link href="<%= root_path %>stylesheets/application-rtl.css" media="screen" rel="stylesheet" type="text/css" />
16
+ <% end %>
17
+
9
18
  <link rel="shortcut icon" type="image/ico" href="<%= root_path %>images/favicon.ico" />
10
19
  <script type="text/javascript" src="<%= root_path %>javascripts/application.js"></script>
11
20
  <meta name="google" content="notranslate" />
data/web/views/morgue.erb CHANGED
@@ -47,24 +47,28 @@
47
47
  <div class="args"><%= display_args(entry.display_args) %></div>
48
48
  </td>
49
49
  <td>
50
+ <% if entry.error? %>
50
51
  <div><%= h truncate("#{entry['error_class']}: #{entry['error_message']}", 200) %></div>
52
+ <% end %>
51
53
  </td>
52
54
  </tr>
53
55
  <% end %>
54
56
  </table>
55
57
  </div>
56
- <input class="btn btn-primary btn-xs pull-left" type="submit" name="retry" value="<%= t('RetryNow') %>" />
57
- <input class="btn btn-danger btn-xs pull-left" type="submit" name="delete" value="<%= t('Delete') %>" />
58
+ <input class="btn btn-primary btn-xs pull-left flip" type="submit" name="retry" value="<%= t('RetryNow') %>" />
59
+ <input class="btn btn-danger btn-xs pull-left flip" type="submit" name="delete" value="<%= t('Delete') %>" />
58
60
  </form>
59
61
 
60
- <form action="<%= root_path %>morgue/all/delete" method="post">
61
- <%= csrf_tag %>
62
- <input class="btn btn-danger btn-xs pull-right" type="submit" name="delete" value="<%= t('DeleteAll') %>" data-confirm="<%= t('AreYouSure') %>" />
63
- </form>
64
- <form action="<%= root_path %>morgue/all/retry" method="post">
65
- <%= csrf_tag %>
66
- <input class="btn btn-danger btn-xs pull-right" type="submit" name="retry" value="<%= t('RetryAll') %>" data-confirm="<%= t('AreYouSure') %>" />
67
- </form>
62
+ <% unfiltered? do %>
63
+ <form action="<%= root_path %>morgue/all/delete" method="post">
64
+ <%= csrf_tag %>
65
+ <input class="btn btn-danger btn-xs pull-right flip" type="submit" name="delete" value="<%= t('DeleteAll') %>" data-confirm="<%= t('AreYouSure') %>" />
66
+ </form>
67
+ <form action="<%= root_path %>morgue/all/retry" method="post">
68
+ <%= csrf_tag %>
69
+ <input class="btn btn-danger btn-xs pull-right flip" type="submit" name="retry" value="<%= t('RetryAll') %>" data-confirm="<%= t('AreYouSure') %>" />
70
+ </form>
71
+ <% end %>
68
72
 
69
73
  <% else %>
70
74
  <div class="alert alert-success"><%= t('NoDeadJobsFound') %></div>
data/web/views/queue.erb CHANGED
@@ -7,8 +7,8 @@
7
7
  <% end %>
8
8
  </h3>
9
9
  </div>
10
- <div class="col-sm-4 pull-right">
11
- <%= erb :_paging, locals: { url: "#{root_path}queues/#{@name}" } %>
10
+ <div class="col-sm-4 pull-right flip">
11
+ <%= erb :_paging, locals: { url: "#{root_path}queues/#{CGI.escape(@name)}" } %>
12
12
  </div>
13
13
  </header>
14
14
  <div class="table_container">
@@ -22,19 +22,19 @@
22
22
  <tr>
23
23
  <td><%= h(msg.display_class) %></td>
24
24
  <td>
25
- <% a = msg.display_args.inspect %>
26
- <% if a.size > 100 %>
27
- <%= h(msg.display_args.inspect[0..100]) + "... " %>
28
- <button data-toggle="collapse" data-target="#worker_<%= index %>" class="btn btn-default btn-xs"><%= t('ShowAll') %></button>
29
- <div class="toggle" id="worker_<%= index %>"><%= h(msg.display_args) %></div>
25
+ <% a = msg.display_args %>
26
+ <% if a.inspect.size > 100 %>
27
+ <span class="worker_<%= index %>"><%= h(a.inspect[0..100]) + "... " %></span>
28
+ <button data-toggle="collapse" data-target=".worker_<%= index %>" class="btn btn-default btn-xs"><%= t('ShowAll') %></button>
29
+ <div class="toggle worker_<%= index %>"><%= display_args(a) %></div>
30
30
  <% else %>
31
- <%= h(msg.display_args) %>
31
+ <%= display_args(msg.display_args) %>
32
32
  <% end %>
33
33
  </td>
34
34
  <td>
35
- <form action="<%= root_path %>queues/<%= @name %>/delete" method="post">
35
+ <form action="<%= root_path %>queues/<%= CGI.escape(@name) %>/delete" method="post">
36
36
  <%= csrf_tag %>
37
- <input name="key_val" value="<%= h Sidekiq.dump_json(msg.item) %>" type="hidden" />
37
+ <input name="key_val" value="<%= h msg.value %>" type="hidden" />
38
38
  <input class="btn btn-danger btn-xs" type="submit" name="delete" value="<%= t('Delete') %>" data-confirm="<%= t('AreYouSure') %>" />
39
39
  </form>
40
40
  </td>
data/web/views/queues.erb CHANGED
@@ -5,19 +5,21 @@
5
5
  <thead>
6
6
  <th><%= t('Queue') %></th>
7
7
  <th><%= t('Size') %></th>
8
+ <th><%= t('Latency') %></th>
8
9
  <th><%= t('Actions') %></th>
9
10
  </thead>
10
11
  <% @queues.each do |queue| %>
11
12
  <tr>
12
13
  <td>
13
- <a href="<%= root_path %>queues/<%= queue.name %>"><%= queue.name %></a>
14
+ <a href="<%= root_path %>queues/<%= CGI.escape(queue.name) %>"><%= h queue.name %></a>
14
15
  <% if queue.paused? %>
15
16
  <span class="label label-danger"><%= t('Paused') %></span>
16
17
  <% end %>
17
18
  </td>
18
19
  <td><%= number_with_delimiter(queue.size) %> </td>
20
+ <td><%= number_with_delimiter(queue.latency.round(2)) %> </td>
19
21
  <td class="delete-confirm">
20
- <form action="<%=root_path %>queues/<%= queue.name %>" method="post">
22
+ <form action="<%=root_path %>queues/<%= CGI.escape(queue.name) %>" method="post">
21
23
  <%= csrf_tag %>
22
24
  <input class="btn btn-danger btn-xs" type="submit" name="delete" value="<%= t('Delete') %>" data-confirm="<%= t('AreYouSureDeleteQueue', :queue => h(queue.name)) %>" />
23
25
  </form>
@@ -55,19 +55,21 @@
55
55
  <% end %>
56
56
  </table>
57
57
  </div>
58
- <input class="btn btn-primary btn-xs pull-left" type="submit" name="retry" value="<%= t('RetryNow') %>" />
59
- <input class="btn btn-danger btn-xs pull-left" type="submit" name="delete" value="<%= t('Delete') %>" />
60
- <input class="btn btn-danger btn-xs pull-left" type="submit" name="kill" value="<%= t('Kill') %>" />
58
+ <input class="btn btn-primary btn-xs pull-left flip" type="submit" name="retry" value="<%= t('RetryNow') %>" />
59
+ <input class="btn btn-danger btn-xs pull-left flip" type="submit" name="delete" value="<%= t('Delete') %>" />
60
+ <input class="btn btn-danger btn-xs pull-left flip" type="submit" name="kill" value="<%= t('Kill') %>" />
61
61
  </form>
62
62
 
63
- <form action="<%= root_path %>retries/all/delete" method="post">
64
- <%= csrf_tag %>
65
- <input class="btn btn-danger btn-xs pull-right" type="submit" name="delete" value="<%= t('DeleteAll') %>" data-confirm="<%= t('AreYouSure') %>" />
66
- </form>
67
- <form action="<%= root_path %>retries/all/retry" method="post">
68
- <%= csrf_tag %>
69
- <input class="btn btn-danger btn-xs pull-right" type="submit" name="retry" value="<%= t('RetryAll') %>" data-confirm="<%= t('AreYouSure') %>" />
70
- </form>
63
+ <% unfiltered? do %>
64
+ <form action="<%= root_path %>retries/all/delete" method="post">
65
+ <%= csrf_tag %>
66
+ <input class="btn btn-danger btn-xs pull-right flip" type="submit" name="delete" value="<%= t('DeleteAll') %>" data-confirm="<%= t('AreYouSure') %>" />
67
+ </form>
68
+ <form action="<%= root_path %>retries/all/retry" method="post">
69
+ <%= csrf_tag %>
70
+ <input class="btn btn-danger btn-xs pull-right flip" type="submit" name="retry" value="<%= t('RetryAll') %>" data-confirm="<%= t('AreYouSure') %>" />
71
+ </form>
72
+ <% end %>
71
73
 
72
74
  <% else %>
73
75
  <div class="alert alert-success"><%= t('NoRetriesFound') %></div>
data/web/views/retry.erb CHANGED
@@ -7,7 +7,7 @@
7
7
  <tr>
8
8
  <th><%= t('ErrorClass') %></th>
9
9
  <td>
10
- <code><%= h @retry.display_class %></code>
10
+ <code><%= h @retry['error_class'] %></code>
11
11
  </td>
12
12
  </tr>
13
13
  <tr>