sidekiq 5.2.6

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 (118) hide show
  1. checksums.yaml +7 -0
  2. data/.github/contributing.md +32 -0
  3. data/.github/issue_template.md +11 -0
  4. data/.gitignore +15 -0
  5. data/.travis.yml +11 -0
  6. data/3.0-Upgrade.md +70 -0
  7. data/4.0-Upgrade.md +53 -0
  8. data/5.0-Upgrade.md +56 -0
  9. data/COMM-LICENSE +97 -0
  10. data/Changes.md +1529 -0
  11. data/Ent-Changes.md +238 -0
  12. data/Gemfile +23 -0
  13. data/LICENSE +9 -0
  14. data/Pro-2.0-Upgrade.md +138 -0
  15. data/Pro-3.0-Upgrade.md +44 -0
  16. data/Pro-4.0-Upgrade.md +35 -0
  17. data/Pro-Changes.md +759 -0
  18. data/README.md +109 -0
  19. data/Rakefile +9 -0
  20. data/bin/sidekiq +18 -0
  21. data/bin/sidekiqctl +20 -0
  22. data/bin/sidekiqload +149 -0
  23. data/code_of_conduct.md +50 -0
  24. data/lib/generators/sidekiq/templates/worker.rb.erb +9 -0
  25. data/lib/generators/sidekiq/templates/worker_spec.rb.erb +6 -0
  26. data/lib/generators/sidekiq/templates/worker_test.rb.erb +8 -0
  27. data/lib/generators/sidekiq/worker_generator.rb +49 -0
  28. data/lib/sidekiq.rb +237 -0
  29. data/lib/sidekiq/api.rb +940 -0
  30. data/lib/sidekiq/cli.rb +445 -0
  31. data/lib/sidekiq/client.rb +243 -0
  32. data/lib/sidekiq/core_ext.rb +1 -0
  33. data/lib/sidekiq/ctl.rb +221 -0
  34. data/lib/sidekiq/delay.rb +42 -0
  35. data/lib/sidekiq/exception_handler.rb +29 -0
  36. data/lib/sidekiq/extensions/action_mailer.rb +57 -0
  37. data/lib/sidekiq/extensions/active_record.rb +40 -0
  38. data/lib/sidekiq/extensions/class_methods.rb +40 -0
  39. data/lib/sidekiq/extensions/generic_proxy.rb +31 -0
  40. data/lib/sidekiq/fetch.rb +81 -0
  41. data/lib/sidekiq/job_logger.rb +25 -0
  42. data/lib/sidekiq/job_retry.rb +262 -0
  43. data/lib/sidekiq/launcher.rb +173 -0
  44. data/lib/sidekiq/logging.rb +122 -0
  45. data/lib/sidekiq/manager.rb +137 -0
  46. data/lib/sidekiq/middleware/chain.rb +150 -0
  47. data/lib/sidekiq/middleware/i18n.rb +42 -0
  48. data/lib/sidekiq/middleware/server/active_record.rb +23 -0
  49. data/lib/sidekiq/paginator.rb +43 -0
  50. data/lib/sidekiq/processor.rb +279 -0
  51. data/lib/sidekiq/rails.rb +58 -0
  52. data/lib/sidekiq/redis_connection.rb +144 -0
  53. data/lib/sidekiq/scheduled.rb +174 -0
  54. data/lib/sidekiq/testing.rb +333 -0
  55. data/lib/sidekiq/testing/inline.rb +29 -0
  56. data/lib/sidekiq/util.rb +66 -0
  57. data/lib/sidekiq/version.rb +4 -0
  58. data/lib/sidekiq/web.rb +213 -0
  59. data/lib/sidekiq/web/action.rb +89 -0
  60. data/lib/sidekiq/web/application.rb +353 -0
  61. data/lib/sidekiq/web/helpers.rb +325 -0
  62. data/lib/sidekiq/web/router.rb +100 -0
  63. data/lib/sidekiq/worker.rb +220 -0
  64. data/sidekiq.gemspec +21 -0
  65. data/web/assets/images/favicon.ico +0 -0
  66. data/web/assets/images/logo.png +0 -0
  67. data/web/assets/images/status.png +0 -0
  68. data/web/assets/javascripts/application.js +92 -0
  69. data/web/assets/javascripts/dashboard.js +315 -0
  70. data/web/assets/stylesheets/application-rtl.css +246 -0
  71. data/web/assets/stylesheets/application.css +1144 -0
  72. data/web/assets/stylesheets/bootstrap-rtl.min.css +9 -0
  73. data/web/assets/stylesheets/bootstrap.css +5 -0
  74. data/web/locales/ar.yml +81 -0
  75. data/web/locales/cs.yml +78 -0
  76. data/web/locales/da.yml +68 -0
  77. data/web/locales/de.yml +69 -0
  78. data/web/locales/el.yml +68 -0
  79. data/web/locales/en.yml +81 -0
  80. data/web/locales/es.yml +70 -0
  81. data/web/locales/fa.yml +80 -0
  82. data/web/locales/fr.yml +78 -0
  83. data/web/locales/he.yml +79 -0
  84. data/web/locales/hi.yml +75 -0
  85. data/web/locales/it.yml +69 -0
  86. data/web/locales/ja.yml +80 -0
  87. data/web/locales/ko.yml +68 -0
  88. data/web/locales/nb.yml +77 -0
  89. data/web/locales/nl.yml +68 -0
  90. data/web/locales/pl.yml +59 -0
  91. data/web/locales/pt-br.yml +68 -0
  92. data/web/locales/pt.yml +67 -0
  93. data/web/locales/ru.yml +78 -0
  94. data/web/locales/sv.yml +68 -0
  95. data/web/locales/ta.yml +75 -0
  96. data/web/locales/uk.yml +76 -0
  97. data/web/locales/ur.yml +80 -0
  98. data/web/locales/zh-cn.yml +68 -0
  99. data/web/locales/zh-tw.yml +68 -0
  100. data/web/views/_footer.erb +20 -0
  101. data/web/views/_job_info.erb +88 -0
  102. data/web/views/_nav.erb +52 -0
  103. data/web/views/_paging.erb +23 -0
  104. data/web/views/_poll_link.erb +7 -0
  105. data/web/views/_status.erb +4 -0
  106. data/web/views/_summary.erb +40 -0
  107. data/web/views/busy.erb +98 -0
  108. data/web/views/dashboard.erb +75 -0
  109. data/web/views/dead.erb +34 -0
  110. data/web/views/layout.erb +40 -0
  111. data/web/views/morgue.erb +75 -0
  112. data/web/views/queue.erb +46 -0
  113. data/web/views/queues.erb +30 -0
  114. data/web/views/retries.erb +80 -0
  115. data/web/views/retry.erb +34 -0
  116. data/web/views/scheduled.erb +54 -0
  117. data/web/views/scheduled_job_info.erb +8 -0
  118. metadata +229 -0
@@ -0,0 +1,34 @@
1
+ <%= erb :_job_info, locals: { job: @dead, type: :dead } %>
2
+
3
+ <h3><%= t('Error') %></h3>
4
+ <div class="table_container">
5
+ <table class="error table table-bordered table-striped">
6
+ <tbody>
7
+ <tr>
8
+ <th><%= t('ErrorClass') %></th>
9
+ <td>
10
+ <code><%= @dead['error_class'] %></code>
11
+ </td>
12
+ </tr>
13
+ <tr>
14
+ <th><%= t('ErrorMessage') %></th>
15
+ <td><%= h(@dead['error_message']) %></td>
16
+ </tr>
17
+ <% if !@dead['error_backtrace'].nil? %>
18
+ <tr>
19
+ <th><%= t('ErrorBacktrace') %></th>
20
+ <td>
21
+ <code><%= @dead['error_backtrace'].join("<br/>") %></code>
22
+ </td>
23
+ </tr>
24
+ <% end %>
25
+ </tbody>
26
+ </table>
27
+ </div>
28
+
29
+ <form class="form-horizontal" action="<%= root_path %>morgue/<%= job_params(@dead, @dead.score) %>" method="post">
30
+ <%= csrf_tag %>
31
+ <a class="btn btn-default" href="<%= root_path %>morgue"><%= t('GoBack') %></a>
32
+ <input class="btn btn-primary" type="submit" name="retry" value="<%= t('RetryNow') %>" />
33
+ <input class="btn btn-danger" type="submit" name="delete" value="<%= t('Delete') %>" />
34
+ </form>
@@ -0,0 +1,40 @@
1
+ <!doctype html>
2
+ <html dir="<%= text_direction %>">
3
+ <head>
4
+ <title><%= environment_title_prefix %><%= Sidekiq::NAME %></title>
5
+ <meta charset="utf-8" />
6
+ <meta name="viewport" content="width=device-width,initial-scale=1.0" />
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
+
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
+
18
+ <link rel="shortcut icon" type="image/ico" href="<%= root_path %>images/favicon.ico" />
19
+ <script type="text/javascript" src="<%= root_path %>javascripts/application.js"></script>
20
+ <meta name="google" content="notranslate" />
21
+ <%= display_custom_head %>
22
+ </head>
23
+ <body class="admin" data-poll-path="<%= poll_path %>" data-locale="<%= locale %>">
24
+ <%= erb :_nav %>
25
+ <div id="page">
26
+ <div class="container">
27
+ <div class="row">
28
+ <div class="col-sm-12 summary_bar">
29
+ <%= erb :_summary %>
30
+ </div>
31
+
32
+ <div class="col-sm-12">
33
+ <%= yield %>
34
+ </div>
35
+ </div>
36
+ </div>
37
+ </div>
38
+ <%= erb :_footer %>
39
+ </body>
40
+ </html>
@@ -0,0 +1,75 @@
1
+ <header class="row">
2
+ <div class="col-sm-5">
3
+ <h3><%= t('DeadJobs') %></h3>
4
+ </div>
5
+ <% if @dead.size > 0 && @total_size > @count %>
6
+ <div class="col-sm-4">
7
+ <%= erb :_paging, locals: { url: "#{root_path}morgue" } %>
8
+ </div>
9
+ <% end %>
10
+ <%= filtering('dead') %>
11
+ </header>
12
+
13
+ <% if @dead.size > 0 %>
14
+ <form action="<%= root_path %>morgue" method="post">
15
+ <%= csrf_tag %>
16
+ <div class="table_container">
17
+ <table class="table table-striped table-bordered table-white">
18
+ <thead>
19
+ <tr>
20
+ <th class="table-checkbox checkbox-column">
21
+ <label>
22
+ <input type="checkbox" class="check_all" />
23
+ </label>
24
+ </th>
25
+ <th><%= t('LastRetry') %></th>
26
+ <th><%= t('Queue') %></th>
27
+ <th><%= t('Job') %></th>
28
+ <th><%= t('Arguments') %></th>
29
+ <th><%= t('Error') %></th>
30
+ </tr>
31
+ </thead>
32
+ <% @dead.each do |entry| %>
33
+ <tr>
34
+ <td class="table-checkbox">
35
+ <label>
36
+ <input type='checkbox' name='key[]' value='<%= job_params(entry.item, entry.score) %>' />
37
+ </label>
38
+ </td>
39
+ <td>
40
+ <a href="<%= root_path %>morgue/<%= job_params(entry.item, entry.score) %>"><%= relative_time(entry.at) %></a>
41
+ </td>
42
+ <td>
43
+ <a href="<%= root_path %>queues/<%= entry.queue %>"><%= entry.queue %></a>
44
+ </td>
45
+ <td><%= entry.display_class %></td>
46
+ <td>
47
+ <div class="args"><%= display_args(entry.display_args) %></div>
48
+ </td>
49
+ <td>
50
+ <% if entry.error? %>
51
+ <div><%= h truncate("#{entry['error_class']}: #{entry['error_message']}", 200) %></div>
52
+ <% end %>
53
+ </td>
54
+ </tr>
55
+ <% end %>
56
+ </table>
57
+ </div>
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
+ </form>
61
+
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 %>
72
+
73
+ <% else %>
74
+ <div class="alert alert-success"><%= t('NoDeadJobsFound') %></div>
75
+ <% end %>
@@ -0,0 +1,46 @@
1
+ <header class="row">
2
+ <div class="col-sm-5">
3
+ <h3>
4
+ <%= t('CurrentMessagesInQueue', :queue => h(@name)) %>
5
+ <% if @queue.paused? %>
6
+ <span class="label label-danger"><%= t('Paused') %></span>
7
+ <% end %>
8
+ <span class="badge badge-secondary"><%= number_with_delimiter(@total_size) %></span>
9
+ </h3>
10
+ </div>
11
+ <div class="col-sm-4 pull-right flip">
12
+ <%= erb :_paging, locals: { url: "#{root_path}queues/#{CGI.escape(@name)}" } %>
13
+ </div>
14
+ </header>
15
+ <div class="table_container">
16
+ <table class="queue table table-hover table-bordered table-striped">
17
+ <thead>
18
+ <th><%= t('Job') %></th>
19
+ <th><%= t('Arguments') %></th>
20
+ <th></th>
21
+ </thead>
22
+ <% @messages.each_with_index do |msg, index| %>
23
+ <tr>
24
+ <td><%= h(msg.display_class) %></td>
25
+ <td>
26
+ <% a = msg.display_args %>
27
+ <% if a.inspect.size > 100 %>
28
+ <span class="worker_<%= index %>"><%= h(a.inspect[0..100]) + "... " %></span>
29
+ <button data-toggle="collapse" data-target=".worker_<%= index %>" class="btn btn-default btn-xs"><%= t('ShowAll') %></button>
30
+ <div class="toggle worker_<%= index %>"><%= display_args(a) %></div>
31
+ <% else %>
32
+ <%= display_args(msg.display_args) %>
33
+ <% end %>
34
+ </td>
35
+ <td>
36
+ <form action="<%= root_path %>queues/<%= CGI.escape(@name) %>/delete" method="post">
37
+ <%= csrf_tag %>
38
+ <input name="key_val" value="<%= h msg.value %>" type="hidden" />
39
+ <input class="btn btn-danger btn-xs" type="submit" name="delete" value="<%= t('Delete') %>" data-confirm="<%= t('AreYouSure') %>" />
40
+ </form>
41
+ </td>
42
+ </tr>
43
+ <% end %>
44
+ </table>
45
+ </div>
46
+ <%= erb :_paging, locals: { url: "#{root_path}queues/#{@name}" } %>
@@ -0,0 +1,30 @@
1
+ <h3><%= t('Queues') %></h3>
2
+
3
+ <div class="table_container">
4
+ <table class="queues table table-hover table-bordered table-striped table-white">
5
+ <thead>
6
+ <th><%= t('Queue') %></th>
7
+ <th><%= t('Size') %></th>
8
+ <th><%= t('Latency') %></th>
9
+ <th><%= t('Actions') %></th>
10
+ </thead>
11
+ <% @queues.each do |queue| %>
12
+ <tr>
13
+ <td>
14
+ <a href="<%= root_path %>queues/<%= CGI.escape(queue.name) %>"><%= h queue.name %></a>
15
+ <% if queue.paused? %>
16
+ <span class="label label-danger"><%= t('Paused') %></span>
17
+ <% end %>
18
+ </td>
19
+ <td><%= number_with_delimiter(queue.size) %> </td>
20
+ <td><% queue_latency = queue.latency %><%= number_with_delimiter(queue_latency.round(2)) %><%= (queue_latency < 60) ? '' : " (#{relative_time(Time.at(Time.now.to_f - queue_latency))})" %> </td>
21
+ <td class="delete-confirm">
22
+ <form action="<%=root_path %>queues/<%= CGI.escape(queue.name) %>" method="post">
23
+ <%= csrf_tag %>
24
+ <input class="btn btn-danger btn-xs" type="submit" name="delete" value="<%= t('Delete') %>" data-confirm="<%= t('AreYouSureDeleteQueue', :queue => h(queue.name)) %>" />
25
+ </form>
26
+ </td>
27
+ </tr>
28
+ <% end %>
29
+ </table>
30
+ </div>
@@ -0,0 +1,80 @@
1
+ <header class="row">
2
+ <div class="col-sm-5">
3
+ <h3><%= t('Retries') %></h3>
4
+ </div>
5
+ <% if @retries.size > 0 && @total_size > @count %>
6
+ <div class="col-sm-4">
7
+ <%= erb :_paging, locals: { url: "#{root_path}retries" } %>
8
+ </div>
9
+ <% end %>
10
+ <%= filtering('retries') %>
11
+ </header>
12
+
13
+ <% if @retries.size > 0 %>
14
+ <form action="<%= root_path %>retries" method="post">
15
+ <%= csrf_tag %>
16
+ <div class="table_container">
17
+ <table class="table table-striped table-bordered table-white">
18
+ <thead>
19
+ <tr>
20
+ <th class="table-checkbox checkbox-column">
21
+ <label>
22
+ <input type="checkbox" class="check_all" />
23
+ </label>
24
+ </th>
25
+ <th><%= t('NextRetry') %></th>
26
+ <th><%= t('RetryCount') %></th>
27
+ <th><%= t('Queue') %></th>
28
+ <th><%= t('Job') %></th>
29
+ <th><%= t('Arguments') %></th>
30
+ <th><%= t('Error') %></th>
31
+ </tr>
32
+ </thead>
33
+ <% @retries.each do |entry| %>
34
+ <tr>
35
+ <td class="table-checkbox">
36
+ <label>
37
+ <input type='checkbox' name='key[]' value='<%= job_params(entry.item, entry.score) %>' />
38
+ </label>
39
+ </td>
40
+ <td>
41
+ <a href="<%= root_path %>retries/<%= job_params(entry.item, entry.score) %>"><%= relative_time(entry.at) %></a>
42
+ </td>
43
+ <td><%= entry['retry_count'] %></td>
44
+ <td>
45
+ <a href="<%= root_path %>queues/<%= entry.queue %>"><%= entry.queue %></a>
46
+ </td>
47
+ <td><%= entry.display_class %></td>
48
+ <td>
49
+ <div class="args"><%= display_args(entry.display_args) %></div>
50
+ </td>
51
+ <td>
52
+ <div><%= h truncate("#{entry['error_class']}: #{entry['error_message']}", 200) %></div>
53
+ </td>
54
+ </tr>
55
+ <% end %>
56
+ </table>
57
+ </div>
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
+ </form>
62
+
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
+ <form action="<%= root_path %>retries/all/kill" method="post">
73
+ <%= csrf_tag %>
74
+ <input class="btn btn-danger btn-xs pull-right flip" type="submit" name="kill" value="<%= t('KillAll') %>" data-confirm="<%= t('AreYouSure') %>" />
75
+ </form>
76
+ <% end %>
77
+
78
+ <% else %>
79
+ <div class="alert alert-success"><%= t('NoRetriesFound') %></div>
80
+ <% end %>
@@ -0,0 +1,34 @@
1
+ <%= erb :_job_info, locals: { job: @retry, type: :retry } %>
2
+
3
+ <h3><%= t('Error') %></h3>
4
+ <div class="table_container">
5
+ <table class="error table table-bordered table-striped">
6
+ <tbody>
7
+ <tr>
8
+ <th><%= t('ErrorClass') %></th>
9
+ <td>
10
+ <code><%= h @retry['error_class'] %></code>
11
+ </td>
12
+ </tr>
13
+ <tr>
14
+ <th><%= t('ErrorMessage') %></th>
15
+ <td><%= h(@retry['error_message']) %></td>
16
+ </tr>
17
+ <% if !@retry['error_backtrace'].nil? %>
18
+ <tr>
19
+ <th><%= t('ErrorBacktrace') %></th>
20
+ <td>
21
+ <code><%= @retry['error_backtrace'].join("<br/>") %></code>
22
+ </td>
23
+ </tr>
24
+ <% end %>
25
+ </tbody>
26
+ </table>
27
+ </div>
28
+
29
+ <form class="form-horizontal" action="<%= root_path %>retries/<%= job_params(@retry, @retry.score) %>" method="post">
30
+ <%= csrf_tag %>
31
+ <a class="btn btn-default" href="<%= root_path %>retries"><%= t('GoBack') %></a>
32
+ <input class="btn btn-primary" type="submit" name="retry" value="<%= t('RetryNow') %>" />
33
+ <input class="btn btn-danger" type="submit" name="delete" value="<%= t('Delete') %>" />
34
+ </form>
@@ -0,0 +1,54 @@
1
+ <header class="row">
2
+ <div class="col-sm-5">
3
+ <h3><%= t('ScheduledJobs') %></h3>
4
+ </div>
5
+ <% if @scheduled.size > 0 && @total_size > @count %>
6
+ <div class="col-sm-4">
7
+ <%= erb :_paging, locals: { url: "#{root_path}scheduled" } %>
8
+ </div>
9
+ <% end %>
10
+ <%= filtering('scheduled') %>
11
+ </header>
12
+
13
+ <% if @scheduled.size > 0 %>
14
+
15
+ <form action="<%= root_path %>scheduled" method="post">
16
+ <%= csrf_tag %>
17
+ <div class="table_container">
18
+ <table class="table table-striped table-bordered table-white">
19
+ <thead>
20
+ <tr>
21
+ <th class="checkbox-column">
22
+ <input type="checkbox" class="check_all" />
23
+ </th>
24
+ <th><%= t('When') %></th>
25
+ <th><%= t('Queue') %></th>
26
+ <th><%= t('Job') %></th>
27
+ <th><%= t('Arguments') %></th>
28
+ </tr>
29
+ </thead>
30
+ <% @scheduled.each do |entry| %>
31
+ <tr>
32
+ <td>
33
+ <input type='checkbox' name='key[]' value='<%= job_params(entry.item, entry.score) %>' />
34
+ </td>
35
+ <td>
36
+ <a href="<%= root_path %>scheduled/<%= job_params(entry.item, entry.score) %>"><%= relative_time(entry.at) %></a>
37
+ </td>
38
+ <td>
39
+ <a href="<%= root_path %>queues/<%= entry.queue %>"><%= entry.queue %></a>
40
+ </td>
41
+ <td><%= entry.display_class %></td>
42
+ <td>
43
+ <div class="args"><%= display_args(entry.display_args) %></div>
44
+ </td>
45
+ </tr>
46
+ <% end %>
47
+ </table>
48
+ </div>
49
+ <input class="btn btn-danger pull-right flip" type="submit" name="delete" value="<%= t('Delete') %>" />
50
+ <input class="btn btn-danger pull-right flip" type="submit" name="add_to_queue" value="<%= t('AddToQueue') %>" />
51
+ </form>
52
+ <% else %>
53
+ <div class="alert alert-success"><%= t('NoScheduledFound') %></div>
54
+ <% end %>
@@ -0,0 +1,8 @@
1
+ <%= erb :_job_info, locals: { job: @job, type: :scheduled } %>
2
+
3
+ <form class="form-horizontal" action="<%= root_path %>scheduled/<%= job_params(@job, @job.score) %>" method="post">
4
+ <%= csrf_tag %>
5
+ <a class="btn btn-default" href="<%= root_path %>scheduled"><%= t('GoBack') %></a>
6
+ <input class="btn btn-primary" type="submit" name="add_to_queue" value="<%= t('AddToQueue') %>" />
7
+ <input class="btn btn-danger" type="submit" name="delete" value="<%= t('Delete') %>" />
8
+ </form>
metadata ADDED
@@ -0,0 +1,229 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sidekiq
3
+ version: !ruby/object:Gem::Version
4
+ version: 5.2.6
5
+ platform: ruby
6
+ authors:
7
+ - Mike Perham
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-04-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: redis
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 3.3.5
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '5'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 3.3.5
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '5'
33
+ - !ruby/object:Gem::Dependency
34
+ name: connection_pool
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '2.2'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 2.2.2
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '2.2'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 2.2.2
53
+ - !ruby/object:Gem::Dependency
54
+ name: rack
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: 1.5.0
60
+ type: :runtime
61
+ prerelease: false
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: 1.5.0
67
+ - !ruby/object:Gem::Dependency
68
+ name: rack-protection
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: 1.5.0
74
+ type: :runtime
75
+ prerelease: false
76
+ version_requirements: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: 1.5.0
81
+ description: Simple, efficient background processing for Ruby.
82
+ email:
83
+ - mperham@gmail.com
84
+ executables:
85
+ - sidekiq
86
+ - sidekiqctl
87
+ extensions: []
88
+ extra_rdoc_files: []
89
+ files:
90
+ - ".github/contributing.md"
91
+ - ".github/issue_template.md"
92
+ - ".gitignore"
93
+ - ".travis.yml"
94
+ - 3.0-Upgrade.md
95
+ - 4.0-Upgrade.md
96
+ - 5.0-Upgrade.md
97
+ - COMM-LICENSE
98
+ - Changes.md
99
+ - Ent-Changes.md
100
+ - Gemfile
101
+ - LICENSE
102
+ - Pro-2.0-Upgrade.md
103
+ - Pro-3.0-Upgrade.md
104
+ - Pro-4.0-Upgrade.md
105
+ - Pro-Changes.md
106
+ - README.md
107
+ - Rakefile
108
+ - bin/sidekiq
109
+ - bin/sidekiqctl
110
+ - bin/sidekiqload
111
+ - code_of_conduct.md
112
+ - lib/generators/sidekiq/templates/worker.rb.erb
113
+ - lib/generators/sidekiq/templates/worker_spec.rb.erb
114
+ - lib/generators/sidekiq/templates/worker_test.rb.erb
115
+ - lib/generators/sidekiq/worker_generator.rb
116
+ - lib/sidekiq.rb
117
+ - lib/sidekiq/api.rb
118
+ - lib/sidekiq/cli.rb
119
+ - lib/sidekiq/client.rb
120
+ - lib/sidekiq/core_ext.rb
121
+ - lib/sidekiq/ctl.rb
122
+ - lib/sidekiq/delay.rb
123
+ - lib/sidekiq/exception_handler.rb
124
+ - lib/sidekiq/extensions/action_mailer.rb
125
+ - lib/sidekiq/extensions/active_record.rb
126
+ - lib/sidekiq/extensions/class_methods.rb
127
+ - lib/sidekiq/extensions/generic_proxy.rb
128
+ - lib/sidekiq/fetch.rb
129
+ - lib/sidekiq/job_logger.rb
130
+ - lib/sidekiq/job_retry.rb
131
+ - lib/sidekiq/launcher.rb
132
+ - lib/sidekiq/logging.rb
133
+ - lib/sidekiq/manager.rb
134
+ - lib/sidekiq/middleware/chain.rb
135
+ - lib/sidekiq/middleware/i18n.rb
136
+ - lib/sidekiq/middleware/server/active_record.rb
137
+ - lib/sidekiq/paginator.rb
138
+ - lib/sidekiq/processor.rb
139
+ - lib/sidekiq/rails.rb
140
+ - lib/sidekiq/redis_connection.rb
141
+ - lib/sidekiq/scheduled.rb
142
+ - lib/sidekiq/testing.rb
143
+ - lib/sidekiq/testing/inline.rb
144
+ - lib/sidekiq/util.rb
145
+ - lib/sidekiq/version.rb
146
+ - lib/sidekiq/web.rb
147
+ - lib/sidekiq/web/action.rb
148
+ - lib/sidekiq/web/application.rb
149
+ - lib/sidekiq/web/helpers.rb
150
+ - lib/sidekiq/web/router.rb
151
+ - lib/sidekiq/worker.rb
152
+ - sidekiq.gemspec
153
+ - web/assets/images/favicon.ico
154
+ - web/assets/images/logo.png
155
+ - web/assets/images/status.png
156
+ - web/assets/javascripts/application.js
157
+ - web/assets/javascripts/dashboard.js
158
+ - web/assets/stylesheets/application-rtl.css
159
+ - web/assets/stylesheets/application.css
160
+ - web/assets/stylesheets/bootstrap-rtl.min.css
161
+ - web/assets/stylesheets/bootstrap.css
162
+ - web/locales/ar.yml
163
+ - web/locales/cs.yml
164
+ - web/locales/da.yml
165
+ - web/locales/de.yml
166
+ - web/locales/el.yml
167
+ - web/locales/en.yml
168
+ - web/locales/es.yml
169
+ - web/locales/fa.yml
170
+ - web/locales/fr.yml
171
+ - web/locales/he.yml
172
+ - web/locales/hi.yml
173
+ - web/locales/it.yml
174
+ - web/locales/ja.yml
175
+ - web/locales/ko.yml
176
+ - web/locales/nb.yml
177
+ - web/locales/nl.yml
178
+ - web/locales/pl.yml
179
+ - web/locales/pt-br.yml
180
+ - web/locales/pt.yml
181
+ - web/locales/ru.yml
182
+ - web/locales/sv.yml
183
+ - web/locales/ta.yml
184
+ - web/locales/uk.yml
185
+ - web/locales/ur.yml
186
+ - web/locales/zh-cn.yml
187
+ - web/locales/zh-tw.yml
188
+ - web/views/_footer.erb
189
+ - web/views/_job_info.erb
190
+ - web/views/_nav.erb
191
+ - web/views/_paging.erb
192
+ - web/views/_poll_link.erb
193
+ - web/views/_status.erb
194
+ - web/views/_summary.erb
195
+ - web/views/busy.erb
196
+ - web/views/dashboard.erb
197
+ - web/views/dead.erb
198
+ - web/views/layout.erb
199
+ - web/views/morgue.erb
200
+ - web/views/queue.erb
201
+ - web/views/queues.erb
202
+ - web/views/retries.erb
203
+ - web/views/retry.erb
204
+ - web/views/scheduled.erb
205
+ - web/views/scheduled_job_info.erb
206
+ homepage: http://sidekiq.org
207
+ licenses:
208
+ - LGPL-3.0
209
+ metadata: {}
210
+ post_install_message:
211
+ rdoc_options: []
212
+ require_paths:
213
+ - lib
214
+ required_ruby_version: !ruby/object:Gem::Requirement
215
+ requirements:
216
+ - - ">="
217
+ - !ruby/object:Gem::Version
218
+ version: 2.2.2
219
+ required_rubygems_version: !ruby/object:Gem::Requirement
220
+ requirements:
221
+ - - ">="
222
+ - !ruby/object:Gem::Version
223
+ version: '0'
224
+ requirements: []
225
+ rubygems_version: 3.0.1
226
+ signing_key:
227
+ specification_version: 4
228
+ summary: Simple, efficient background processing for Ruby
229
+ test_files: []