sidekiq 4.2.4 → 6.4.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 (143) hide show
  1. checksums.yaml +5 -5
  2. data/Changes.md +523 -0
  3. data/LICENSE +3 -3
  4. data/README.md +23 -36
  5. data/bin/sidekiq +26 -2
  6. data/bin/sidekiqload +28 -38
  7. data/bin/sidekiqmon +8 -0
  8. data/lib/generators/sidekiq/job_generator.rb +57 -0
  9. data/lib/generators/sidekiq/templates/{worker.rb.erb → job.rb.erb} +2 -2
  10. data/lib/generators/sidekiq/templates/job_spec.rb.erb +6 -0
  11. data/lib/generators/sidekiq/templates/job_test.rb.erb +8 -0
  12. data/lib/sidekiq/api.rb +403 -243
  13. data/lib/sidekiq/cli.rb +230 -211
  14. data/lib/sidekiq/client.rb +53 -64
  15. data/lib/sidekiq/delay.rb +43 -0
  16. data/lib/sidekiq/exception_handler.rb +12 -16
  17. data/lib/sidekiq/extensions/action_mailer.rb +15 -24
  18. data/lib/sidekiq/extensions/active_record.rb +15 -12
  19. data/lib/sidekiq/extensions/class_methods.rb +16 -13
  20. data/lib/sidekiq/extensions/generic_proxy.rb +14 -6
  21. data/lib/sidekiq/fetch.rb +39 -31
  22. data/lib/sidekiq/job.rb +13 -0
  23. data/lib/sidekiq/job_logger.rb +63 -0
  24. data/lib/sidekiq/job_retry.rb +261 -0
  25. data/lib/sidekiq/job_util.rb +65 -0
  26. data/lib/sidekiq/launcher.rb +170 -71
  27. data/lib/sidekiq/logger.rb +166 -0
  28. data/lib/sidekiq/manager.rb +21 -26
  29. data/lib/sidekiq/middleware/chain.rb +20 -8
  30. data/lib/sidekiq/middleware/current_attributes.rb +57 -0
  31. data/lib/sidekiq/middleware/i18n.rb +5 -7
  32. data/lib/sidekiq/monitor.rb +133 -0
  33. data/lib/sidekiq/paginator.rb +18 -14
  34. data/lib/sidekiq/processor.rb +161 -70
  35. data/lib/sidekiq/rails.rb +41 -73
  36. data/lib/sidekiq/redis_connection.rb +65 -20
  37. data/lib/sidekiq/scheduled.rb +95 -34
  38. data/lib/sidekiq/sd_notify.rb +149 -0
  39. data/lib/sidekiq/systemd.rb +24 -0
  40. data/lib/sidekiq/testing/inline.rb +2 -1
  41. data/lib/sidekiq/testing.rb +52 -26
  42. data/lib/sidekiq/util.rb +60 -14
  43. data/lib/sidekiq/version.rb +2 -1
  44. data/lib/sidekiq/web/action.rb +15 -15
  45. data/lib/sidekiq/web/application.rb +115 -89
  46. data/lib/sidekiq/web/csrf_protection.rb +180 -0
  47. data/lib/sidekiq/web/helpers.rb +151 -83
  48. data/lib/sidekiq/web/router.rb +27 -19
  49. data/lib/sidekiq/web.rb +65 -109
  50. data/lib/sidekiq/worker.rb +284 -41
  51. data/lib/sidekiq.rb +93 -60
  52. data/sidekiq.gemspec +24 -22
  53. data/web/assets/images/apple-touch-icon.png +0 -0
  54. data/web/assets/javascripts/application.js +83 -64
  55. data/web/assets/javascripts/dashboard.js +81 -85
  56. data/web/assets/stylesheets/application-dark.css +143 -0
  57. data/web/assets/stylesheets/application-rtl.css +242 -0
  58. data/web/assets/stylesheets/application.css +319 -143
  59. data/web/assets/stylesheets/bootstrap-rtl.min.css +9 -0
  60. data/web/assets/stylesheets/bootstrap.css +2 -2
  61. data/web/locales/ar.yml +87 -0
  62. data/web/locales/de.yml +14 -2
  63. data/web/locales/en.yml +8 -1
  64. data/web/locales/es.yml +22 -5
  65. data/web/locales/fa.yml +80 -0
  66. data/web/locales/fr.yml +10 -3
  67. data/web/locales/he.yml +79 -0
  68. data/web/locales/ja.yml +12 -4
  69. data/web/locales/lt.yml +83 -0
  70. data/web/locales/pl.yml +4 -4
  71. data/web/locales/ru.yml +4 -0
  72. data/web/locales/ur.yml +80 -0
  73. data/web/locales/vi.yml +83 -0
  74. data/web/views/_footer.erb +5 -2
  75. data/web/views/_job_info.erb +4 -3
  76. data/web/views/_nav.erb +4 -18
  77. data/web/views/_paging.erb +1 -1
  78. data/web/views/_poll_link.erb +2 -5
  79. data/web/views/_summary.erb +7 -7
  80. data/web/views/busy.erb +60 -22
  81. data/web/views/dashboard.erb +23 -15
  82. data/web/views/dead.erb +3 -3
  83. data/web/views/layout.erb +14 -3
  84. data/web/views/morgue.erb +19 -12
  85. data/web/views/queue.erb +24 -14
  86. data/web/views/queues.erb +14 -4
  87. data/web/views/retries.erb +22 -13
  88. data/web/views/retry.erb +4 -4
  89. data/web/views/scheduled.erb +7 -4
  90. metadata +49 -198
  91. data/.github/contributing.md +0 -32
  92. data/.github/issue_template.md +0 -4
  93. data/.gitignore +0 -12
  94. data/.travis.yml +0 -12
  95. data/3.0-Upgrade.md +0 -70
  96. data/4.0-Upgrade.md +0 -53
  97. data/COMM-LICENSE +0 -95
  98. data/Ent-Changes.md +0 -146
  99. data/Gemfile +0 -29
  100. data/Pro-2.0-Upgrade.md +0 -138
  101. data/Pro-3.0-Upgrade.md +0 -44
  102. data/Pro-Changes.md +0 -585
  103. data/Rakefile +0 -9
  104. data/bin/sidekiqctl +0 -99
  105. data/code_of_conduct.md +0 -50
  106. data/lib/generators/sidekiq/templates/worker_spec.rb.erb +0 -6
  107. data/lib/generators/sidekiq/templates/worker_test.rb.erb +0 -8
  108. data/lib/generators/sidekiq/worker_generator.rb +0 -49
  109. data/lib/sidekiq/core_ext.rb +0 -106
  110. data/lib/sidekiq/logging.rb +0 -106
  111. data/lib/sidekiq/middleware/server/active_record.rb +0 -13
  112. data/lib/sidekiq/middleware/server/logging.rb +0 -40
  113. data/lib/sidekiq/middleware/server/retry_jobs.rb +0 -205
  114. data/test/config.yml +0 -9
  115. data/test/env_based_config.yml +0 -11
  116. data/test/fake_env.rb +0 -1
  117. data/test/fixtures/en.yml +0 -2
  118. data/test/helper.rb +0 -75
  119. data/test/test_actors.rb +0 -138
  120. data/test/test_api.rb +0 -528
  121. data/test/test_cli.rb +0 -418
  122. data/test/test_client.rb +0 -266
  123. data/test/test_exception_handler.rb +0 -56
  124. data/test/test_extensions.rb +0 -127
  125. data/test/test_fetch.rb +0 -50
  126. data/test/test_launcher.rb +0 -95
  127. data/test/test_logging.rb +0 -35
  128. data/test/test_manager.rb +0 -50
  129. data/test/test_middleware.rb +0 -158
  130. data/test/test_processor.rb +0 -235
  131. data/test/test_rails.rb +0 -22
  132. data/test/test_redis_connection.rb +0 -132
  133. data/test/test_retry.rb +0 -326
  134. data/test/test_retry_exhausted.rb +0 -149
  135. data/test/test_scheduled.rb +0 -115
  136. data/test/test_scheduling.rb +0 -58
  137. data/test/test_sidekiq.rb +0 -107
  138. data/test/test_testing.rb +0 -143
  139. data/test/test_testing_fake.rb +0 -357
  140. data/test/test_testing_inline.rb +0 -94
  141. data/test/test_util.rb +0 -13
  142. data/test/test_web.rb +0 -726
  143. data/test/test_web_helpers.rb +0 -54
@@ -0,0 +1,143 @@
1
+ html, body {
2
+ background-color: #171717 !important;
3
+ color: #DEDEDE;
4
+ }
5
+
6
+ a,
7
+ .title,
8
+ .summary_bar ul .count,
9
+ span.current-interval,
10
+ .navbar .navbar-brand {
11
+ color: #d04;
12
+ }
13
+
14
+ .history-graph.active,
15
+ .beacon .dot {
16
+ background-color: #d04;
17
+ }
18
+
19
+ .navbar .navbar-brand:hover {
20
+ color: #ddd;
21
+ }
22
+
23
+ .navbar .navbar-brand .status {
24
+ color: #ddd;
25
+ }
26
+
27
+ .navbar-default .navbar-nav > li > a {
28
+ color: #ddd;
29
+ }
30
+
31
+ .navbar-inverse {
32
+ background-color: #222;
33
+ border-color: #444;
34
+ }
35
+
36
+ table {
37
+ background-color: #1D1D1D;
38
+ }
39
+
40
+ .table-striped > tbody > tr:nth-of-type(odd) {
41
+ background-color: #2E2E2E;
42
+ }
43
+
44
+ .table-bordered,
45
+ .table-bordered > tbody > tr > td,
46
+ .table-bordered > tbody > tr > th,
47
+ .table-bordered > tfoot > tr > td,
48
+ .table-bordered > tfoot > tr > th,
49
+ .table-bordered > thead > tr > td,
50
+ .table-bordered > thead > tr > th {
51
+ border: 1px solid #444;
52
+ }
53
+
54
+ .table-hover > tbody > tr:hover {
55
+ background-color: #444;
56
+ }
57
+
58
+ .alert {
59
+ border: none;
60
+ color: #ddd;
61
+ }
62
+
63
+ .alert-success {
64
+ background-color: #484;
65
+ }
66
+
67
+ .alert-danger {
68
+ background-color: #980035;
69
+ }
70
+
71
+ .alert-info {
72
+ background-color: #31708f;
73
+ }
74
+
75
+ a:link, a:active, a:hover, a:visited {
76
+ color: #ddd;
77
+ }
78
+
79
+ input {
80
+ background-color: #444;
81
+ color: #ccc;
82
+ padding: 3px;
83
+ }
84
+
85
+ .summary_bar .summary {
86
+ background-color: #232323;
87
+ border: 1px solid #444;
88
+ }
89
+
90
+ .navbar-default {
91
+ background-color: #0F0F0F;
92
+ border-color: #444;
93
+ }
94
+
95
+ .navbar-default .navbar-nav > .active > a,
96
+ .navbar-default .navbar-nav > .active > a:focus,
97
+ .navbar-default .navbar-nav > .active > a:hover {
98
+ color: #ddd;
99
+ background-color: #333;
100
+ }
101
+
102
+ .navbar-default .navbar-nav > li > a:hover {
103
+ color: #ddd;
104
+ }
105
+
106
+ .pagination > li > a,
107
+ .pagination > li > a:hover,
108
+ .pagination > li > span {
109
+ color: #ddd;
110
+ background-color: #333;
111
+ border-color: #444;
112
+ }
113
+ .pagination > .disabled > a,
114
+ .pagination > .disabled > a:focus,
115
+ .pagination > .disabled > a:hover,
116
+ .pagination > .disabled > span,
117
+ .pagination > .disabled > span:focus,
118
+ .pagination > .disabled > span:hover {
119
+ color: #ddd;
120
+ background-color: #333;
121
+ border-color: #444;
122
+ }
123
+
124
+ .stat {
125
+ border: 1px solid #888;
126
+ }
127
+
128
+ .rickshaw_graph .detail {
129
+ background: #888;
130
+ }
131
+ .rickshaw_graph .x_tick {
132
+ border-color: #888;
133
+ }
134
+
135
+ .rickshaw_graph .y_ticks.glow text {
136
+ fill: #ddd;
137
+ color: #ddd;
138
+ }
139
+
140
+ .info-circle {
141
+ color: #222;
142
+ background-color: #888;
143
+ }
@@ -0,0 +1,242 @@
1
+ .navbar-right {
2
+ float: left !important;
3
+ }
4
+
5
+ footer .edits {
6
+ margin-right: unset;
7
+ margin-left: 40px;
8
+ }
9
+
10
+ .summary_bar .status {
11
+ margin-left: unset;
12
+ margin-right: 10px;
13
+ }
14
+ @media (max-width: 767px) and (min-width: 400px) {
15
+ .summary_bar ul .desc {
16
+ text-align: right;
17
+ }
18
+ .summary_bar ul .count {
19
+ text-align: left;
20
+ }
21
+ }
22
+ @media (max-width: 979px) and (min-width: 768px) {
23
+ }
24
+ .summary_bar ul .count {
25
+ float: left;
26
+ }
27
+
28
+ form .btn {
29
+ margin-right: unset;
30
+ margin-left: 5px;
31
+ }
32
+
33
+ form .btn-group .btn {
34
+ margin-right: unset;
35
+ margin-left: 1px;
36
+ }
37
+
38
+ @media (max-width: 768px) {
39
+ .navbar.navbar-fixed-top ul {
40
+ margin-right: unset;
41
+ margin-left: -15px!important;
42
+ }
43
+ }
44
+
45
+ @media (width: 768px) {
46
+ .navbar .poll-wrapper {
47
+ margin: 4px 0 0 4px;
48
+ }
49
+ }
50
+
51
+ .navbar-footer .navbar ul.nav a.navbar-brand {
52
+ padding: 0 0 0 15px;
53
+ }
54
+
55
+ .navbar-fixed-bottom li {
56
+ margin-right: unset;
57
+ margin-left: 20px;
58
+ }
59
+
60
+ .status-active {
61
+ background-position: 100% 0;
62
+ }
63
+
64
+ .status-idle {
65
+ background-position: 100% -54px;
66
+ }
67
+
68
+ .stat {
69
+ float: right;
70
+ margin-right: unset;
71
+ margin-left: 20px;
72
+ }
73
+
74
+ .stat:last-child {
75
+ margin-left: 0;
76
+ }
77
+
78
+ @media (max-width: 767px) {
79
+ .stat {
80
+ float: right;
81
+ margin-right: unset;
82
+ margin-left: 10px;
83
+ text-align: right;
84
+ }
85
+ .stat h3{
86
+ float: left;
87
+ margin: 5px 5px 5px 10px;
88
+ }
89
+ .stat p{
90
+ font-size: 1em;
91
+ margin: 5px 10px 5px 5px;
92
+ }
93
+ }
94
+
95
+ /* Dashboard
96
+ ********************************** */
97
+ div.dashboard h3 {
98
+ float: right;
99
+ }
100
+
101
+ div.interval-slider {
102
+ float: left;
103
+ }
104
+
105
+ #realtime-legend,
106
+ #history-legend {
107
+ text-align: right;
108
+ float: left;
109
+ }
110
+ #realtime-legend .timestamp,
111
+ #history-legend .timestamp {
112
+ text-align: left;
113
+ }
114
+ #realtime-legend .line,
115
+ #history-legend .line {
116
+ margin: 0 20px 0 0;
117
+ }
118
+ #realtime-legend .swatch,
119
+ #history-legend .swatch {
120
+ margin: 0 0 0 8px;
121
+ }
122
+
123
+ /* Beacon
124
+ ********************************** */
125
+
126
+ .beacon .dot,
127
+ .beacon .ring {
128
+ right: 50%;
129
+ }
130
+
131
+ .beacon .dot {
132
+ margin: -5px -5px 0 0;
133
+ }
134
+
135
+ .beacon .ring {
136
+ margin: -14px -14px 0 0;
137
+ }
138
+
139
+ .history-heading {
140
+ padding-right: unset;
141
+ padding-left: 15px;
142
+ }
143
+
144
+ @media (max-width: 767px) {
145
+ .navbar.navbar-fixed-top ul {
146
+ margin-left: 0;
147
+ }
148
+
149
+ .navbar.navbar-fixed-top li {
150
+ margin-left: 0;
151
+ }
152
+
153
+ .navbar.navbar-fixed-bottom ul {
154
+ margin-left: 0;
155
+ }
156
+
157
+ .navbar.navbar-fixed-bottom li {
158
+ margin-left: 0;
159
+ }
160
+ }
161
+
162
+ @media (max-width: 500px) {
163
+ .navbar-footer .navbar ul.nav a.navbar-brand {
164
+ padding-right: unset;
165
+ padding-left: 5px;
166
+ }
167
+ }
168
+
169
+ /* Rickshaw */
170
+
171
+ .rickshaw_graph .detail .x_label.left {
172
+ right: 0
173
+ }
174
+ .rickshaw_graph .detail .x_label.right {
175
+ left: 0
176
+ }
177
+ .rickshaw_graph .detail .item.left {
178
+ right: 0
179
+ }
180
+ .rickshaw_graph .detail .item.right {
181
+ left: 0
182
+ }
183
+ .rickshaw_graph .detail .item.left:after {
184
+ left: 0;
185
+ right: -5px;
186
+ border-right-color: unset;
187
+ border-left-color: rgba(0, 0, 0, .8);
188
+ border-right-width: 0;
189
+ border-left-width: unset;
190
+ }
191
+ .rickshaw_graph .detail .item.right:after {
192
+ right: 0;
193
+ left: -5px;
194
+ border-left-color: unset;
195
+ border-right-color: rgba(0, 0, 0, .8);
196
+ border-left-width: 0;
197
+ border-right-width: unset;
198
+ }
199
+ .rickshaw_graph .detail .dot {
200
+ margin-right: -3px;
201
+ margin-left: unset;
202
+ }
203
+ .rickshaw_graph .x_tick {
204
+ border-left: unset;
205
+ border-right: 1px dotted rgba(0, 0, 0, .2);
206
+ }
207
+ .rickshaw_graph .x_tick .title {
208
+ margin-right: 3px;
209
+ margin-left: unset;
210
+ }
211
+ .rickshaw_annotation_timeline .annotation {
212
+ margin-right: -2px;
213
+ margin-left: unset;
214
+ }
215
+ .rickshaw_graph .annotation_line {
216
+ border-right: 2px solid rgba(0, 0, 0, .3);
217
+ border-left: unset;
218
+ }
219
+ .rickshaw_annotation_timeline .annotation .content {
220
+ left: unset;
221
+ right: -11px;
222
+ }
223
+ .rickshaw_graph .x_tick.glow .title,
224
+ .rickshaw_graph .y_ticks.glow text {
225
+ text-shadow: 1px 1px 0 rgba(255, 255, 255, .1), -1px -1px 0 rgba(255, 255, 255, .1), -1px 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1), 0 -1px 0 rgba(255, 255, 255, .1), -1px 0 0 rgba(255, 255, 255, .1), 1px 0 0 rgba(255, 255, 255, .1), 1px -1px 0 rgba(255, 255, 255, .1)
226
+ }
227
+ .rickshaw_graph .x_tick.inverse .title,
228
+ .rickshaw_graph .y_ticks.inverse text {
229
+ text-shadow: 1px 1px 0 rgba(0, 0, 0, .8), -1px -1px 0 rgba(0, 0, 0, .8), -1px 1px 0 rgba(0, 0, 0, .8), 0 1px 0 rgba(0, 0, 0, .8), 0 -1px 0 rgba(0, 0, 0, .8), -1px 0 0 rgba(0, 0, 0, .8), 1px 0 0 rgba(0, 0, 0, .8), 1px -1px 0 rgba(0, 0, 0, .8)
230
+ }
231
+ .rickshaw_legend .line {
232
+ padding-left: 15px;
233
+ padding-right: unset;
234
+ }
235
+ .rickshaw_legend .line .swatch {
236
+ margin-left: 3px;
237
+ margin-right: unset;
238
+ }
239
+ .rickshaw_legend .action {
240
+ margin-left: .2em;
241
+ margin-right: unset;
242
+ }