sidekiq 4.2.2 → 6.3.1

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 (138) hide show
  1. checksums.yaml +5 -5
  2. data/Changes.md +516 -0
  3. data/LICENSE +2 -2
  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/templates/worker_spec.rb.erb +1 -1
  9. data/lib/generators/sidekiq/templates/worker_test.rb.erb +2 -2
  10. data/lib/generators/sidekiq/worker_generator.rb +21 -13
  11. data/lib/sidekiq/api.rb +401 -243
  12. data/lib/sidekiq/cli.rb +228 -212
  13. data/lib/sidekiq/client.rb +76 -53
  14. data/lib/sidekiq/delay.rb +41 -0
  15. data/lib/sidekiq/exception_handler.rb +12 -16
  16. data/lib/sidekiq/extensions/action_mailer.rb +13 -22
  17. data/lib/sidekiq/extensions/active_record.rb +13 -10
  18. data/lib/sidekiq/extensions/class_methods.rb +14 -11
  19. data/lib/sidekiq/extensions/generic_proxy.rb +12 -4
  20. data/lib/sidekiq/fetch.rb +39 -31
  21. data/lib/sidekiq/job.rb +13 -0
  22. data/lib/sidekiq/job_logger.rb +63 -0
  23. data/lib/sidekiq/job_retry.rb +259 -0
  24. data/lib/sidekiq/launcher.rb +170 -71
  25. data/lib/sidekiq/logger.rb +166 -0
  26. data/lib/sidekiq/manager.rb +17 -20
  27. data/lib/sidekiq/middleware/chain.rb +20 -8
  28. data/lib/sidekiq/middleware/current_attributes.rb +52 -0
  29. data/lib/sidekiq/middleware/i18n.rb +5 -7
  30. data/lib/sidekiq/monitor.rb +133 -0
  31. data/lib/sidekiq/paginator.rb +18 -14
  32. data/lib/sidekiq/processor.rb +169 -78
  33. data/lib/sidekiq/rails.rb +41 -36
  34. data/lib/sidekiq/redis_connection.rb +65 -20
  35. data/lib/sidekiq/scheduled.rb +85 -34
  36. data/lib/sidekiq/sd_notify.rb +149 -0
  37. data/lib/sidekiq/systemd.rb +24 -0
  38. data/lib/sidekiq/testing/inline.rb +2 -1
  39. data/lib/sidekiq/testing.rb +52 -26
  40. data/lib/sidekiq/util.rb +48 -15
  41. data/lib/sidekiq/version.rb +2 -1
  42. data/lib/sidekiq/web/action.rb +15 -17
  43. data/lib/sidekiq/web/application.rb +114 -92
  44. data/lib/sidekiq/web/csrf_protection.rb +180 -0
  45. data/lib/sidekiq/web/helpers.rb +151 -83
  46. data/lib/sidekiq/web/router.rb +27 -19
  47. data/lib/sidekiq/web.rb +85 -76
  48. data/lib/sidekiq/worker.rb +233 -43
  49. data/lib/sidekiq.rb +88 -64
  50. data/sidekiq.gemspec +24 -22
  51. data/web/assets/images/apple-touch-icon.png +0 -0
  52. data/web/assets/javascripts/application.js +86 -59
  53. data/web/assets/javascripts/dashboard.js +81 -85
  54. data/web/assets/stylesheets/application-dark.css +147 -0
  55. data/web/assets/stylesheets/application-rtl.css +242 -0
  56. data/web/assets/stylesheets/application.css +319 -141
  57. data/web/assets/stylesheets/bootstrap-rtl.min.css +9 -0
  58. data/web/assets/stylesheets/bootstrap.css +2 -2
  59. data/web/locales/ar.yml +87 -0
  60. data/web/locales/de.yml +14 -2
  61. data/web/locales/en.yml +8 -1
  62. data/web/locales/es.yml +22 -5
  63. data/web/locales/fa.yml +80 -0
  64. data/web/locales/fr.yml +10 -3
  65. data/web/locales/he.yml +79 -0
  66. data/web/locales/ja.yml +12 -4
  67. data/web/locales/lt.yml +83 -0
  68. data/web/locales/pl.yml +4 -4
  69. data/web/locales/ru.yml +4 -0
  70. data/web/locales/ur.yml +80 -0
  71. data/web/locales/vi.yml +83 -0
  72. data/web/views/_footer.erb +5 -2
  73. data/web/views/_job_info.erb +4 -3
  74. data/web/views/_nav.erb +4 -18
  75. data/web/views/_paging.erb +1 -1
  76. data/web/views/_poll_link.erb +2 -5
  77. data/web/views/_summary.erb +7 -7
  78. data/web/views/busy.erb +60 -22
  79. data/web/views/dashboard.erb +23 -15
  80. data/web/views/dead.erb +3 -3
  81. data/web/views/layout.erb +14 -3
  82. data/web/views/morgue.erb +19 -12
  83. data/web/views/queue.erb +24 -14
  84. data/web/views/queues.erb +14 -4
  85. data/web/views/retries.erb +22 -13
  86. data/web/views/retry.erb +4 -4
  87. data/web/views/scheduled.erb +7 -4
  88. metadata +44 -194
  89. data/.github/contributing.md +0 -32
  90. data/.github/issue_template.md +0 -4
  91. data/.gitignore +0 -12
  92. data/.travis.yml +0 -12
  93. data/3.0-Upgrade.md +0 -70
  94. data/4.0-Upgrade.md +0 -53
  95. data/COMM-LICENSE +0 -95
  96. data/Ent-Changes.md +0 -146
  97. data/Gemfile +0 -29
  98. data/Pro-2.0-Upgrade.md +0 -138
  99. data/Pro-3.0-Upgrade.md +0 -44
  100. data/Pro-Changes.md +0 -570
  101. data/Rakefile +0 -9
  102. data/bin/sidekiqctl +0 -99
  103. data/code_of_conduct.md +0 -50
  104. data/lib/sidekiq/core_ext.rb +0 -106
  105. data/lib/sidekiq/logging.rb +0 -106
  106. data/lib/sidekiq/middleware/server/active_record.rb +0 -13
  107. data/lib/sidekiq/middleware/server/logging.rb +0 -40
  108. data/lib/sidekiq/middleware/server/retry_jobs.rb +0 -205
  109. data/test/config.yml +0 -9
  110. data/test/env_based_config.yml +0 -11
  111. data/test/fake_env.rb +0 -1
  112. data/test/fixtures/en.yml +0 -2
  113. data/test/helper.rb +0 -75
  114. data/test/test_actors.rb +0 -138
  115. data/test/test_api.rb +0 -528
  116. data/test/test_cli.rb +0 -418
  117. data/test/test_client.rb +0 -266
  118. data/test/test_exception_handler.rb +0 -56
  119. data/test/test_extensions.rb +0 -127
  120. data/test/test_fetch.rb +0 -50
  121. data/test/test_launcher.rb +0 -95
  122. data/test/test_logging.rb +0 -35
  123. data/test/test_manager.rb +0 -50
  124. data/test/test_middleware.rb +0 -158
  125. data/test/test_processor.rb +0 -201
  126. data/test/test_rails.rb +0 -22
  127. data/test/test_redis_connection.rb +0 -132
  128. data/test/test_retry.rb +0 -326
  129. data/test/test_retry_exhausted.rb +0 -149
  130. data/test/test_scheduled.rb +0 -115
  131. data/test/test_scheduling.rb +0 -50
  132. data/test/test_sidekiq.rb +0 -107
  133. data/test/test_testing.rb +0 -143
  134. data/test/test_testing_fake.rb +0 -357
  135. data/test/test_testing_inline.rb +0 -94
  136. data/test/test_util.rb +0 -13
  137. data/test/test_web.rb +0 -666
  138. data/test/test_web_helpers.rb +0 -54
@@ -0,0 +1,147 @@
1
+ html, body {
2
+ background-color: #333 !important;
3
+ color: #ddd;
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: #555;
34
+ }
35
+
36
+ table {
37
+ background-color: #282828;
38
+ }
39
+
40
+ .table-striped > tbody > tr:nth-of-type(odd) {
41
+ background-color: #333;
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 #555;
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,
76
+ a:active,
77
+ a:hover {
78
+ color: #ddd;
79
+ }
80
+
81
+ input {
82
+ background-color: #444;
83
+ color: #ccc;
84
+ padding: 3px;
85
+ }
86
+
87
+ .summary_bar .summary {
88
+ background-color: #222;
89
+ border: 1px solid #555;
90
+
91
+ box-shadow: 0 0 5px rgba(255, 255, 255, .5);
92
+ }
93
+
94
+ .navbar-default {
95
+ background-color: #222;
96
+ border-color: #555;
97
+ }
98
+
99
+ .navbar-default .navbar-nav > .active > a,
100
+ .navbar-default .navbar-nav > .active > a:focus,
101
+ .navbar-default .navbar-nav > .active > a:hover {
102
+ color: #ddd;
103
+ background-color: #333;
104
+ }
105
+
106
+ .navbar-default .navbar-nav > li > a:hover {
107
+ color: #ddd;
108
+ }
109
+
110
+ .pagination > li > a,
111
+ .pagination > li > a:hover,
112
+ .pagination > li > span {
113
+ color: #ddd;
114
+ background-color: #333;
115
+ border-color: #555;
116
+ }
117
+ .pagination > .disabled > a,
118
+ .pagination > .disabled > a:focus,
119
+ .pagination > .disabled > a:hover,
120
+ .pagination > .disabled > span,
121
+ .pagination > .disabled > span:focus,
122
+ .pagination > .disabled > span:hover {
123
+ color: #ddd;
124
+ background-color: #333;
125
+ border-color: #555;
126
+ }
127
+
128
+ .stat {
129
+ border: 1px solid #888;
130
+ }
131
+
132
+ .rickshaw_graph .detail {
133
+ background: #888;
134
+ }
135
+ .rickshaw_graph .x_tick {
136
+ border-color: #888;
137
+ }
138
+
139
+ .rickshaw_graph .y_ticks.glow text {
140
+ fill: #ddd;
141
+ color: #ddd;
142
+ }
143
+
144
+ .info-circle {
145
+ color: #222;
146
+ background-color: #888;
147
+ }
@@ -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
+ }