sidekiq 4.0.0 → 5.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 (171) hide show
  1. checksums.yaml +4 -4
  2. data/{Contributing.md → .github/contributing.md} +0 -0
  3. data/.github/issue_template.md +9 -0
  4. data/.gitignore +1 -0
  5. data/.travis.yml +12 -10
  6. data/4.0-Upgrade.md +4 -1
  7. data/5.0-Upgrade.md +56 -0
  8. data/COMM-LICENSE +1 -1
  9. data/Changes.md +236 -7
  10. data/Ent-Changes.md +111 -3
  11. data/Gemfile +7 -6
  12. data/Pro-3.0-Upgrade.md +5 -7
  13. data/Pro-Changes.md +162 -5
  14. data/README.md +31 -21
  15. data/Rakefile +5 -2
  16. data/bin/sidekiq +0 -1
  17. data/bin/sidekiqctl +1 -1
  18. data/bin/sidekiqload +15 -33
  19. data/code_of_conduct.md +50 -0
  20. data/lib/generators/sidekiq/templates/worker_spec.rb.erb +2 -2
  21. data/lib/generators/sidekiq/templates/worker_test.rb.erb +6 -6
  22. data/lib/sidekiq.rb +46 -21
  23. data/lib/sidekiq/api.rb +94 -30
  24. data/lib/sidekiq/cli.rb +38 -16
  25. data/lib/sidekiq/client.rb +32 -26
  26. data/lib/sidekiq/core_ext.rb +14 -0
  27. data/lib/sidekiq/delay.rb +21 -0
  28. data/lib/sidekiq/exception_handler.rb +2 -1
  29. data/lib/sidekiq/extensions/action_mailer.rb +1 -0
  30. data/lib/sidekiq/extensions/active_record.rb +1 -0
  31. data/lib/sidekiq/extensions/class_methods.rb +1 -0
  32. data/lib/sidekiq/extensions/generic_proxy.rb +8 -1
  33. data/lib/sidekiq/fetch.rb +2 -1
  34. data/lib/sidekiq/job_logger.rb +27 -0
  35. data/lib/sidekiq/job_retry.rb +235 -0
  36. data/lib/sidekiq/launcher.rb +42 -33
  37. data/lib/sidekiq/logging.rb +3 -1
  38. data/lib/sidekiq/manager.rb +9 -4
  39. data/lib/sidekiq/middleware/chain.rb +1 -0
  40. data/lib/sidekiq/middleware/i18n.rb +1 -0
  41. data/lib/sidekiq/middleware/server/active_record.rb +9 -0
  42. data/lib/sidekiq/paginator.rb +1 -0
  43. data/lib/sidekiq/processor.rb +73 -19
  44. data/lib/sidekiq/rails.rb +47 -25
  45. data/lib/sidekiq/redis_connection.rb +14 -3
  46. data/lib/sidekiq/scheduled.rb +12 -1
  47. data/lib/sidekiq/testing.rb +65 -13
  48. data/lib/sidekiq/testing/inline.rb +1 -0
  49. data/lib/sidekiq/util.rb +3 -15
  50. data/lib/sidekiq/version.rb +2 -1
  51. data/lib/sidekiq/web.rb +120 -184
  52. data/lib/sidekiq/web/action.rb +89 -0
  53. data/lib/sidekiq/web/application.rb +331 -0
  54. data/lib/sidekiq/{web_helpers.rb → web/helpers.rb} +57 -27
  55. data/lib/sidekiq/web/router.rb +100 -0
  56. data/lib/sidekiq/worker.rb +52 -11
  57. data/sidekiq.gemspec +12 -7
  58. data/web/assets/images/{status-sd8051fd480.png → status.png} +0 -0
  59. data/web/assets/javascripts/application.js +24 -20
  60. data/web/assets/javascripts/dashboard.js +11 -13
  61. data/web/assets/stylesheets/application-rtl.css +246 -0
  62. data/web/assets/stylesheets/application.css +362 -5
  63. data/web/assets/stylesheets/bootstrap-rtl.min.css +9 -0
  64. data/web/assets/stylesheets/bootstrap.css +4 -8
  65. data/web/locales/ar.yml +80 -0
  66. data/web/locales/cs.yml +11 -1
  67. data/web/locales/de.yml +1 -1
  68. data/web/locales/en.yml +2 -0
  69. data/web/locales/fa.yml +80 -0
  70. data/web/locales/fr.yml +21 -12
  71. data/web/locales/he.yml +79 -0
  72. data/web/locales/ja.yml +19 -10
  73. data/web/locales/ru.yml +3 -0
  74. data/web/locales/ur.yml +80 -0
  75. data/web/views/_footer.erb +2 -2
  76. data/web/views/_job_info.erb +5 -1
  77. data/web/views/_nav.erb +2 -2
  78. data/web/views/_paging.erb +1 -1
  79. data/web/views/busy.erb +14 -9
  80. data/web/views/dashboard.erb +5 -5
  81. data/web/views/dead.erb +1 -1
  82. data/web/views/layout.erb +13 -5
  83. data/web/views/morgue.erb +16 -12
  84. data/web/views/queue.erb +11 -11
  85. data/web/views/queues.erb +3 -3
  86. data/web/views/retries.erb +15 -13
  87. data/web/views/retry.erb +2 -2
  88. data/web/views/scheduled.erb +4 -4
  89. data/web/views/scheduled_job_info.erb +1 -1
  90. metadata +97 -148
  91. data/lib/sidekiq/middleware/server/logging.rb +0 -40
  92. data/lib/sidekiq/middleware/server/retry_jobs.rb +0 -206
  93. data/test/config.yml +0 -9
  94. data/test/env_based_config.yml +0 -11
  95. data/test/fake_env.rb +0 -0
  96. data/test/fixtures/en.yml +0 -2
  97. data/test/helper.rb +0 -74
  98. data/test/test_actors.rb +0 -137
  99. data/test/test_api.rb +0 -494
  100. data/test/test_cli.rb +0 -335
  101. data/test/test_client.rb +0 -194
  102. data/test/test_exception_handler.rb +0 -55
  103. data/test/test_extensions.rb +0 -126
  104. data/test/test_fetch.rb +0 -49
  105. data/test/test_launcher.rb +0 -80
  106. data/test/test_logging.rb +0 -34
  107. data/test/test_manager.rb +0 -49
  108. data/test/test_middleware.rb +0 -157
  109. data/test/test_processor.rb +0 -200
  110. data/test/test_rails.rb +0 -21
  111. data/test/test_redis_connection.rb +0 -126
  112. data/test/test_retry.rb +0 -325
  113. data/test/test_scheduled.rb +0 -114
  114. data/test/test_scheduling.rb +0 -49
  115. data/test/test_sidekiq.rb +0 -99
  116. data/test/test_testing.rb +0 -142
  117. data/test/test_testing_fake.rb +0 -331
  118. data/test/test_testing_inline.rb +0 -93
  119. data/test/test_util.rb +0 -16
  120. data/test/test_web.rb +0 -608
  121. data/test/test_web_helpers.rb +0 -53
  122. data/web/assets/images/bootstrap/glyphicons-halflings-white.png +0 -0
  123. data/web/assets/images/bootstrap/glyphicons-halflings.png +0 -0
  124. data/web/assets/images/status/active.png +0 -0
  125. data/web/assets/images/status/idle.png +0 -0
  126. data/web/assets/javascripts/locales/README.md +0 -27
  127. data/web/assets/javascripts/locales/jquery.timeago.ar.js +0 -96
  128. data/web/assets/javascripts/locales/jquery.timeago.bg.js +0 -18
  129. data/web/assets/javascripts/locales/jquery.timeago.bs.js +0 -49
  130. data/web/assets/javascripts/locales/jquery.timeago.ca.js +0 -18
  131. data/web/assets/javascripts/locales/jquery.timeago.cs.js +0 -18
  132. data/web/assets/javascripts/locales/jquery.timeago.cy.js +0 -20
  133. data/web/assets/javascripts/locales/jquery.timeago.da.js +0 -18
  134. data/web/assets/javascripts/locales/jquery.timeago.de.js +0 -18
  135. data/web/assets/javascripts/locales/jquery.timeago.el.js +0 -18
  136. data/web/assets/javascripts/locales/jquery.timeago.en-short.js +0 -20
  137. data/web/assets/javascripts/locales/jquery.timeago.en.js +0 -20
  138. data/web/assets/javascripts/locales/jquery.timeago.es.js +0 -18
  139. data/web/assets/javascripts/locales/jquery.timeago.et.js +0 -18
  140. data/web/assets/javascripts/locales/jquery.timeago.fa.js +0 -22
  141. data/web/assets/javascripts/locales/jquery.timeago.fi.js +0 -28
  142. data/web/assets/javascripts/locales/jquery.timeago.fr-short.js +0 -16
  143. data/web/assets/javascripts/locales/jquery.timeago.fr.js +0 -17
  144. data/web/assets/javascripts/locales/jquery.timeago.he.js +0 -18
  145. data/web/assets/javascripts/locales/jquery.timeago.hr.js +0 -49
  146. data/web/assets/javascripts/locales/jquery.timeago.hu.js +0 -18
  147. data/web/assets/javascripts/locales/jquery.timeago.hy.js +0 -18
  148. data/web/assets/javascripts/locales/jquery.timeago.id.js +0 -18
  149. data/web/assets/javascripts/locales/jquery.timeago.it.js +0 -16
  150. data/web/assets/javascripts/locales/jquery.timeago.ja.js +0 -19
  151. data/web/assets/javascripts/locales/jquery.timeago.ko.js +0 -17
  152. data/web/assets/javascripts/locales/jquery.timeago.lt.js +0 -20
  153. data/web/assets/javascripts/locales/jquery.timeago.mk.js +0 -20
  154. data/web/assets/javascripts/locales/jquery.timeago.nl.js +0 -20
  155. data/web/assets/javascripts/locales/jquery.timeago.no.js +0 -18
  156. data/web/assets/javascripts/locales/jquery.timeago.pl.js +0 -31
  157. data/web/assets/javascripts/locales/jquery.timeago.pt-br.js +0 -16
  158. data/web/assets/javascripts/locales/jquery.timeago.pt.js +0 -16
  159. data/web/assets/javascripts/locales/jquery.timeago.ro.js +0 -18
  160. data/web/assets/javascripts/locales/jquery.timeago.rs.js +0 -49
  161. data/web/assets/javascripts/locales/jquery.timeago.ru.js +0 -34
  162. data/web/assets/javascripts/locales/jquery.timeago.sk.js +0 -18
  163. data/web/assets/javascripts/locales/jquery.timeago.sl.js +0 -44
  164. data/web/assets/javascripts/locales/jquery.timeago.sv.js +0 -18
  165. data/web/assets/javascripts/locales/jquery.timeago.th.js +0 -20
  166. data/web/assets/javascripts/locales/jquery.timeago.tr.js +0 -16
  167. data/web/assets/javascripts/locales/jquery.timeago.uk.js +0 -34
  168. data/web/assets/javascripts/locales/jquery.timeago.uz.js +0 -19
  169. data/web/assets/javascripts/locales/jquery.timeago.zh-cn.js +0 -20
  170. data/web/assets/javascripts/locales/jquery.timeago.zh-tw.js +0 -20
  171. data/web/views/_poll_js.erb +0 -5
@@ -1,49 +0,0 @@
1
- // Serbian
2
- (function () {
3
- var numpf;
4
-
5
- numpf = function (n, f, s, t) {
6
- var n10;
7
- n10 = n % 10;
8
- if (n10 === 1 && (n === 1 || n > 20)) {
9
- return f;
10
- } else if (n10 > 1 && n10 < 5 && (n > 20 || n < 10)) {
11
- return s;
12
- } else {
13
- return t;
14
- }
15
- };
16
-
17
- jQuery.timeago.settings.strings = {
18
- prefixAgo: "pre",
19
- prefixFromNow: "za",
20
- suffixAgo: null,
21
- suffixFromNow: null,
22
- second: "sekund",
23
- seconds: function (value) {
24
- return numpf(value, "%d sekund", "%d sekunde", "%d sekundi");
25
- },
26
- minute: "oko minut",
27
- minutes: function (value) {
28
- return numpf(value, "%d minut", "%d minuta", "%d minuta");
29
- },
30
- hour: "oko jedan sat",
31
- hours: function (value) {
32
- return numpf(value, "%d sat", "%d sata", "%d sati");
33
- },
34
- day: "jedan dan",
35
- days: function (value) {
36
- return numpf(value, "%d dan", "%d dana", "%d dana");
37
- },
38
- month: "mesec dana",
39
- months: function (value) {
40
- return numpf(value, "%d mesec", "%d meseca", "%d meseci");
41
- },
42
- year: "pre godinu dana",
43
- years: function (value) {
44
- return numpf(value, "%d godinu", "%d godine", "%d godina");
45
- },
46
- wordSeparator: " "
47
- };
48
-
49
- }).call(this);
@@ -1,34 +0,0 @@
1
- // Russian
2
- (function() {
3
- function numpf(n, f, s, t) {
4
- // f - 1, 21, 31, ...
5
- // s - 2-4, 22-24, 32-34 ...
6
- // t - 5-20, 25-30, ...
7
- var n10 = n % 10;
8
- if ( (n10 == 1) && ( (n == 1) || (n > 20) ) ) {
9
- return f;
10
- } else if ( (n10 > 1) && (n10 < 5) && ( (n > 20) || (n < 10) ) ) {
11
- return s;
12
- } else {
13
- return t;
14
- }
15
- }
16
-
17
- jQuery.timeago.settings.strings = {
18
- prefixAgo: null,
19
- prefixFromNow: "через",
20
- suffixAgo: "назад",
21
- suffixFromNow: null,
22
- seconds: "меньше минуты",
23
- minute: "минуту",
24
- minutes: function(value) { return numpf(value, "%d минута", "%d минуты", "%d минут"); },
25
- hour: "час",
26
- hours: function(value) { return numpf(value, "%d час", "%d часа", "%d часов"); },
27
- day: "день",
28
- days: function(value) { return numpf(value, "%d день", "%d дня", "%d дней"); },
29
- month: "месяц",
30
- months: function(value) { return numpf(value, "%d месяц", "%d месяца", "%d месяцев"); },
31
- year: "год",
32
- years: function(value) { return numpf(value, "%d год", "%d года", "%d лет"); }
33
- };
34
- })();
@@ -1,18 +0,0 @@
1
- // Slovak
2
- jQuery.timeago.settings.strings = {
3
- prefixAgo: "pred",
4
- prefixFromNow: null,
5
- suffixAgo: null,
6
- suffixFromNow: null,
7
- seconds: "menej než minútou",
8
- minute: "minútou",
9
- minutes: "%d minútami",
10
- hour: "hodinou",
11
- hours: "%d hodinami",
12
- day: "1 dňom",
13
- days: "%d dňami",
14
- month: "1 mesiacom",
15
- months: "%d mesiacmi",
16
- year: "1 rokom",
17
- years: "%d rokmi"
18
- };
@@ -1,44 +0,0 @@
1
- // Slovenian with support for dual
2
- (function () {
3
- var numpf;
4
- numpf = function (n, d, m) {
5
- if (n == 2) {
6
- return d;
7
- } else {
8
- return m;
9
- }
10
- };
11
-
12
- jQuery.timeago.settings.strings = {
13
- prefixAgo: "pred",
14
- prefixFromNow: "čez",
15
- suffixAgo: null,
16
- suffixFromNow: null,
17
- second: "sekundo",
18
- seconds: function (value) {
19
- return numpf(value, "%d sekundama", "%d sekundami");
20
- },
21
- minute: "minuto",
22
- minutes: function (value) {
23
- return numpf(value, "%d minutama", "%d minutami");
24
- },
25
- hour: "uro",
26
- hours: function (value) {
27
- return numpf(value, "%d urama", "%d urami");
28
- },
29
- day: "dnevom",
30
- days: function (value) {
31
- return numpf(value, "%d dnevi", "%d dnevi");
32
- },
33
- month: "enim mescem",
34
- months: function (value) {
35
- return numpf(value, "%d mesecema", "%d meseci");
36
- },
37
- year: "enim letom",
38
- years: function (value) {
39
- return numpf(value, "%d letoma", "%d leti");
40
- },
41
- wordSeparator: " "
42
- };
43
-
44
- }).call(this);
@@ -1,18 +0,0 @@
1
- // Swedish
2
- jQuery.timeago.settings.strings = {
3
- prefixAgo: "för",
4
- prefixFromNow: "om",
5
- suffixAgo: "sedan",
6
- suffixFromNow: "",
7
- seconds: "mindre än en minut",
8
- minute: "ungefär en minut",
9
- minutes: "%d minuter",
10
- hour: "ungefär en timme",
11
- hours: "ungefär %d timmar",
12
- day: "en dag",
13
- days: "%d dagar",
14
- month: "ungefär en månad",
15
- months: "%d månader",
16
- year: "ungefär ett år",
17
- years: "%d år"
18
- };
@@ -1,20 +0,0 @@
1
- // Thai
2
- jQuery.timeago.settings.strings = {
3
- prefixAgo: null,
4
- prefixFromNow: null,
5
- suffixAgo: "ที่แล้ว",
6
- suffixFromNow: "จากตอนนี้",
7
- seconds: "น้อยกว่าหนึ่งนาที",
8
- minute: "ประมาณหนึ่งนาที",
9
- minutes: "%d นาที",
10
- hour: "ประมาณหนึ่งชั่วโมง",
11
- hours: "ประมาณ %d ชั่วโมง",
12
- day: "หนึ่งวัน",
13
- days: "%d วัน",
14
- month: "ประมาณหนึ่งเดือน",
15
- months: "%d เดือน",
16
- year: "ประมาณหนึ่งปี",
17
- years: "%d ปี",
18
- wordSeparator: "",
19
- numbers: []
20
- };
@@ -1,16 +0,0 @@
1
- // Turkish
2
- jQuery.extend($.timeago.settings.strings, {
3
- suffixAgo: 'önce',
4
- suffixFromNow: null,
5
- seconds: '1 dakikadan',
6
- minute: '1 dakika',
7
- minutes: '%d dakika',
8
- hour: '1 saat',
9
- hours: '%d saat',
10
- day: '1 gün',
11
- days: '%d gün',
12
- month: '1 ay',
13
- months: '%d ay',
14
- year: '1 yıl',
15
- years: '%d yıl'
16
- });
@@ -1,34 +0,0 @@
1
- // Ukrainian
2
- (function() {
3
- function numpf(n, f, s, t) {
4
- // f - 1, 21, 31, ...
5
- // s - 2-4, 22-24, 32-34 ...
6
- // t - 5-20, 25-30, ...
7
- var n10 = n % 10;
8
- if ( (n10 == 1) && ( (n == 1) || (n > 20) ) ) {
9
- return f;
10
- } else if ( (n10 > 1) && (n10 < 5) && ( (n > 20) || (n < 10) ) ) {
11
- return s;
12
- } else {
13
- return t;
14
- }
15
- }
16
-
17
- jQuery.timeago.settings.strings = {
18
- prefixAgo: null,
19
- prefixFromNow: "через",
20
- suffixAgo: "тому",
21
- suffixFromNow: null,
22
- seconds: "менше хвилини",
23
- minute: "хвилина",
24
- minutes: function(value) { return numpf(value, "%d хвилина", "%d хвилини", "%d хвилин"); },
25
- hour: "година",
26
- hours: function(value) { return numpf(value, "%d година", "%d години", "%d годин"); },
27
- day: "день",
28
- days: function(value) { return numpf(value, "%d день", "%d дні", "%d днів"); },
29
- month: "місяць",
30
- months: function(value) { return numpf(value, "%d місяць", "%d місяці", "%d місяців"); },
31
- year: "рік",
32
- years: function(value) { return numpf(value, "%d рік", "%d роки", "%d років"); }
33
- };
34
- })();
@@ -1,19 +0,0 @@
1
- //Uzbek
2
- jQuery.timeago.settings.strings = {
3
- prefixAgo: null,
4
- prefixFromNow: "keyin",
5
- suffixAgo: "avval",
6
- suffixFromNow: null,
7
- seconds: "bir necha soniya",
8
- minute: "1 daqiqa",
9
- minutes: function(value) { return "%d daqiqa" },
10
- hour: "1 soat",
11
- hours: function(value) { return "%d soat" },
12
- day: "1 kun",
13
- days: function(value) { return "%d kun" },
14
- month: "1 oy",
15
- months: function(value) { return "%d oy" },
16
- year: "1 yil",
17
- years: function(value) { return "%d yil" },
18
- wordSeparator: " "
19
- };
@@ -1,20 +0,0 @@
1
- // Simplified Chinese
2
- jQuery.timeago.settings.strings = {
3
- prefixAgo: null,
4
- prefixFromNow: "从现在开始",
5
- suffixAgo: "之前",
6
- suffixFromNow: null,
7
- seconds: "不到 1 分钟",
8
- minute: "大约 1 分钟",
9
- minutes: "%d 分钟",
10
- hour: "大约 1 小时",
11
- hours: "大约 %d 小时",
12
- day: "1 天",
13
- days: "%d 天",
14
- month: "大约 1 个月",
15
- months: "%d 月",
16
- year: "大约 1 年",
17
- years: "%d 年",
18
- numbers: [],
19
- wordSeparator: ""
20
- };
@@ -1,20 +0,0 @@
1
- // Traditional Chinese, zh-tw
2
- jQuery.timeago.settings.strings = {
3
- prefixAgo: null,
4
- prefixFromNow: "從現在開始",
5
- suffixAgo: "之前",
6
- suffixFromNow: null,
7
- seconds: "不到 1 分鐘",
8
- minute: "大約 1 分鐘",
9
- minutes: "%d 分鐘",
10
- hour: "大約 1 小時",
11
- hours: "%d 小時",
12
- day: "大約 1 天",
13
- days: "%d 天",
14
- month: "大約 1 個月",
15
- months: "%d 個月",
16
- year: "大約 1 年",
17
- years: "%d 年",
18
- numbers: [],
19
- wordSeparator: ""
20
- };
@@ -1,5 +0,0 @@
1
- <% if current_path != '' && params[:poll] %>
2
- <script>
3
- updatePage('<%= root_path + current_path %>')
4
- </script>
5
- <% end %>