sidekiq 6.0.0 → 6.0.3
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.
Potentially problematic release.
This version of sidekiq might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.circleci/config.yml +21 -0
- data/6.0-Upgrade.md +3 -1
- data/Changes.md +88 -1
- data/Ent-Changes.md +6 -0
- data/Gemfile.lock +3 -3
- data/Pro-Changes.md +9 -1
- data/README.md +3 -1
- data/bin/sidekiqload +8 -4
- data/bin/sidekiqmon +4 -5
- data/lib/generators/sidekiq/worker_generator.rb +10 -0
- data/lib/sidekiq/api.rb +117 -88
- data/lib/sidekiq/cli.rb +19 -17
- data/lib/sidekiq/client.rb +12 -2
- data/lib/sidekiq/fetch.rb +7 -7
- data/lib/sidekiq/job_logger.rb +11 -3
- data/lib/sidekiq/job_retry.rb +21 -8
- data/lib/sidekiq/launcher.rb +1 -3
- data/lib/sidekiq/logger.rb +107 -11
- data/lib/sidekiq/middleware/chain.rb +11 -2
- data/lib/sidekiq/monitor.rb +1 -16
- data/lib/sidekiq/paginator.rb +7 -2
- data/lib/sidekiq/processor.rb +17 -19
- data/lib/sidekiq/scheduled.rb +13 -12
- data/lib/sidekiq/testing.rb +12 -0
- data/lib/sidekiq/util.rb +0 -2
- data/lib/sidekiq/version.rb +1 -1
- data/lib/sidekiq/web/application.rb +8 -13
- data/lib/sidekiq/web/helpers.rb +22 -10
- data/lib/sidekiq/worker.rb +4 -4
- data/lib/sidekiq.rb +8 -0
- data/sidekiq.gemspec +1 -1
- data/web/assets/javascripts/dashboard.js +2 -2
- data/web/assets/stylesheets/application-dark.css +125 -0
- data/web/assets/stylesheets/application.css +9 -0
- data/web/locales/de.yml +14 -2
- data/web/views/_job_info.erb +2 -1
- data/web/views/busy.erb +4 -1
- data/web/views/dead.erb +2 -2
- data/web/views/layout.erb +1 -0
- data/web/views/morgue.erb +4 -1
- data/web/views/queue.erb +10 -1
- data/web/views/retries.erb +4 -1
- data/web/views/retry.erb +2 -2
- data/web/views/scheduled.erb +4 -1
- metadata +5 -4
| @@ -27,7 +27,7 @@ var realtimeGraph = function(updatePath) { | |
| 27 27 | 
             
                renderer: 'line',
         | 
| 28 28 | 
             
                interpolation: 'linear',
         | 
| 29 29 |  | 
| 30 | 
            -
                series: new Rickshaw.Series.FixedDuration([{ name: graphElement.dataset.failedLabel, color: '# | 
| 30 | 
            +
                series: new Rickshaw.Series.FixedDuration([{ name: graphElement.dataset.failedLabel, color: '#af0014' }, { name: graphElement.dataset.processedLabel, color: '#006f68' }], undefined, {
         | 
| 31 31 | 
             
                  timeInterval: timeInterval,
         | 
| 32 32 | 
             
                  maxDataPoints: 100,
         | 
| 33 33 | 
             
                })
         | 
| @@ -125,7 +125,7 @@ var historyGraph = function() { | |
| 125 125 | 
             
                interpolation: 'linear',
         | 
| 126 126 | 
             
                series: [
         | 
| 127 127 | 
             
                  {
         | 
| 128 | 
            -
                    color: "# | 
| 128 | 
            +
                    color: "#af0014",
         | 
| 129 129 | 
             
                    data: failed,
         | 
| 130 130 | 
             
                    name: graphElement.dataset.failedLabel
         | 
| 131 131 | 
             
                  }, {
         | 
| @@ -0,0 +1,125 @@ | |
| 1 | 
            +
            @media (prefers-color-scheme: dark) {
         | 
| 2 | 
            +
             | 
| 3 | 
            +
              body {
         | 
| 4 | 
            +
                background-color: #000;
         | 
| 5 | 
            +
                color: #ccc;
         | 
| 6 | 
            +
              }
         | 
| 7 | 
            +
             | 
| 8 | 
            +
              a,
         | 
| 9 | 
            +
              .title,
         | 
| 10 | 
            +
              .summary_bar ul .count,
         | 
| 11 | 
            +
              .navbar .navbar-brand {
         | 
| 12 | 
            +
                color: #af0014;
         | 
| 13 | 
            +
              }
         | 
| 14 | 
            +
             | 
| 15 | 
            +
              .navbar .navbar-brand:hover {
         | 
| 16 | 
            +
                color: #ccc;
         | 
| 17 | 
            +
              }
         | 
| 18 | 
            +
             | 
| 19 | 
            +
              .navbar .navbar-brand .status {
         | 
| 20 | 
            +
                color: #ccc;
         | 
| 21 | 
            +
              }
         | 
| 22 | 
            +
             | 
| 23 | 
            +
              .navbar-inverse {
         | 
| 24 | 
            +
                background-color: #000;
         | 
| 25 | 
            +
                border-color: #333;
         | 
| 26 | 
            +
              }
         | 
| 27 | 
            +
             | 
| 28 | 
            +
              table.table-white {
         | 
| 29 | 
            +
                background-color: #111;
         | 
| 30 | 
            +
              }
         | 
| 31 | 
            +
             | 
| 32 | 
            +
              .table-striped > tbody > tr:nth-of-type(odd) {
         | 
| 33 | 
            +
                background-color: #222;
         | 
| 34 | 
            +
              }
         | 
| 35 | 
            +
             | 
| 36 | 
            +
              .table-bordered,
         | 
| 37 | 
            +
              .table-bordered > tbody > tr > td,
         | 
| 38 | 
            +
              .table-bordered > tbody > tr > th,
         | 
| 39 | 
            +
              .table-bordered > tfoot > tr > td,
         | 
| 40 | 
            +
              .table-bordered > tfoot > tr > th,
         | 
| 41 | 
            +
              .table-bordered > thead > tr > td,
         | 
| 42 | 
            +
              .table-bordered > thead > tr > th {
         | 
| 43 | 
            +
                border: 1px solid #333;
         | 
| 44 | 
            +
              }
         | 
| 45 | 
            +
             | 
| 46 | 
            +
              .table-hover > tbody > tr:hover {
         | 
| 47 | 
            +
                background-color: #333;
         | 
| 48 | 
            +
              }
         | 
| 49 | 
            +
             | 
| 50 | 
            +
              .alert {
         | 
| 51 | 
            +
                border: none;
         | 
| 52 | 
            +
                color: #ccc;
         | 
| 53 | 
            +
              }
         | 
| 54 | 
            +
             | 
| 55 | 
            +
              .alert-success {
         | 
| 56 | 
            +
                background-color: #000;
         | 
| 57 | 
            +
              }
         | 
| 58 | 
            +
             | 
| 59 | 
            +
              a:link,
         | 
| 60 | 
            +
              a:active,
         | 
| 61 | 
            +
              a:hover,
         | 
| 62 | 
            +
              a:visited {
         | 
| 63 | 
            +
                color: #63798c;
         | 
| 64 | 
            +
              }
         | 
| 65 | 
            +
             | 
| 66 | 
            +
              a.btn {
         | 
| 67 | 
            +
                color: #000;
         | 
| 68 | 
            +
              }
         | 
| 69 | 
            +
             | 
| 70 | 
            +
              .summary_bar .summary {
         | 
| 71 | 
            +
                background-color: #000;
         | 
| 72 | 
            +
                border: 1px solid #333;
         | 
| 73 | 
            +
              }
         | 
| 74 | 
            +
             | 
| 75 | 
            +
              .navbar-default {
         | 
| 76 | 
            +
                background-color: #000;
         | 
| 77 | 
            +
                border-color: #3d3d3d;
         | 
| 78 | 
            +
              }
         | 
| 79 | 
            +
             | 
| 80 | 
            +
              .navbar-default .navbar-nav > .active > a,
         | 
| 81 | 
            +
              .navbar-default .navbar-nav > .active > a:focus,
         | 
| 82 | 
            +
              .navbar-default .navbar-nav > .active > a:hover {
         | 
| 83 | 
            +
                color: #ccc;
         | 
| 84 | 
            +
                background-color: #282828;
         | 
| 85 | 
            +
              }
         | 
| 86 | 
            +
             | 
| 87 | 
            +
              .navbar-default .navbar-nav > li > a:hover {
         | 
| 88 | 
            +
                color: #ccc;
         | 
| 89 | 
            +
              }
         | 
| 90 | 
            +
             | 
| 91 | 
            +
              .pagination > li > a,
         | 
| 92 | 
            +
              .pagination > li > a:hover,
         | 
| 93 | 
            +
              .pagination > li > span {
         | 
| 94 | 
            +
                color: #ccc;
         | 
| 95 | 
            +
                background-color: #282828;
         | 
| 96 | 
            +
                border-color: #353535;
         | 
| 97 | 
            +
              }
         | 
| 98 | 
            +
              .pagination > .disabled > a,
         | 
| 99 | 
            +
              .pagination > .disabled > a:focus,
         | 
| 100 | 
            +
              .pagination > .disabled > a:hover,
         | 
| 101 | 
            +
              .pagination > .disabled > span,
         | 
| 102 | 
            +
              .pagination > .disabled > span:focus,
         | 
| 103 | 
            +
              .pagination > .disabled > span:hover {
         | 
| 104 | 
            +
                color: #a5a5a5;
         | 
| 105 | 
            +
                background-color: #282828;
         | 
| 106 | 
            +
                border-color: #353535;
         | 
| 107 | 
            +
              }
         | 
| 108 | 
            +
             | 
| 109 | 
            +
              .stat {
         | 
| 110 | 
            +
                border: 1px solid rgba(255, 255, 255, 0.1);
         | 
| 111 | 
            +
              }
         | 
| 112 | 
            +
             | 
| 113 | 
            +
              #live-poll {
         | 
| 114 | 
            +
                color: #ccc;
         | 
| 115 | 
            +
              }
         | 
| 116 | 
            +
             | 
| 117 | 
            +
              .btn-warn {
         | 
| 118 | 
            +
                color: #333;
         | 
| 119 | 
            +
              }
         | 
| 120 | 
            +
             | 
| 121 | 
            +
              .rickshaw_graph .y_ticks.glow text {
         | 
| 122 | 
            +
                fill: #ccc;
         | 
| 123 | 
            +
                color: #ccc;
         | 
| 124 | 
            +
              }
         | 
| 125 | 
            +
            }
         | 
    
        data/web/locales/de.yml
    CHANGED
    
    | @@ -13,7 +13,7 @@ de: | |
| 13 13 | 
             
              Retries: Versuche
         | 
| 14 14 | 
             
              Enqueued: In der Warteschlange
         | 
| 15 15 | 
             
              Worker: Arbeiter
         | 
| 16 | 
            -
              LivePoll:  | 
| 16 | 
            +
              LivePoll: Echtzeitabfrage
         | 
| 17 17 | 
             
              StopPolling: Abfrage stoppen
         | 
| 18 18 | 
             
              Queue: Warteschlange
         | 
| 19 19 | 
             
              Class: Klasse
         | 
| @@ -33,12 +33,13 @@ de: | |
| 33 33 | 
             
              NextRetry: Nächster Versuch
         | 
| 34 34 | 
             
              RetryCount: Anzahl der Versuche
         | 
| 35 35 | 
             
              RetryNow: Jetzt erneut versuchen
         | 
| 36 | 
            -
              Kill:  | 
| 36 | 
            +
              Kill: Vernichten
         | 
| 37 37 | 
             
              LastRetry: Letzter Versuch
         | 
| 38 38 | 
             
              OriginallyFailed: Ursprünglich fehlgeschlagen
         | 
| 39 39 | 
             
              AreYouSure: Bist du sicher?
         | 
| 40 40 | 
             
              DeleteAll: Alle löschen
         | 
| 41 41 | 
             
              RetryAll: Alle erneut versuchen
         | 
| 42 | 
            +
              KillAll: Alle vernichten
         | 
| 42 43 | 
             
              NoRetriesFound: Keine erneuten Versuche gefunden
         | 
| 43 44 | 
             
              Error: Fehler
         | 
| 44 45 | 
             
              ErrorClass: Fehlerklasse
         | 
| @@ -67,3 +68,14 @@ de: | |
| 67 68 | 
             
              Thread: Thread
         | 
| 68 69 | 
             
              Threads: Threads
         | 
| 69 70 | 
             
              Jobs: Jobs
         | 
| 71 | 
            +
              Paused: Pausiert
         | 
| 72 | 
            +
              Stop: Stopp
         | 
| 73 | 
            +
              Quiet: Leise
         | 
| 74 | 
            +
              StopAll: Alle stoppen
         | 
| 75 | 
            +
              QuietAll: Alle leise
         | 
| 76 | 
            +
              PollingInterval: Abfrageintervall
         | 
| 77 | 
            +
              Plugins: Erweiterungen
         | 
| 78 | 
            +
              NotYetEnqueued: Noch nicht in der Warteschlange
         | 
| 79 | 
            +
              CreatedAt: Erstellt
         | 
| 80 | 
            +
              BackToApp: Zurück zur Anwendung
         | 
| 81 | 
            +
              Latency: Latenz
         | 
    
        data/web/views/_job_info.erb
    CHANGED
    
    
    
        data/web/views/busy.erb
    CHANGED
    
    | @@ -87,7 +87,10 @@ | |
| 87 87 | 
             
                    <td>
         | 
| 88 88 | 
             
                      <a href="<%= root_path %>queues/<%= msg['queue'] %>"><%= msg['queue'] %></a>
         | 
| 89 89 | 
             
                    </td>
         | 
| 90 | 
            -
                    <td | 
| 90 | 
            +
                    <td>
         | 
| 91 | 
            +
                      <%= job.display_class %>
         | 
| 92 | 
            +
                      <%= display_tags(job, nil) %>
         | 
| 93 | 
            +
                    </td>
         | 
| 91 94 | 
             
                    <td>
         | 
| 92 95 | 
             
                      <div class="args"><%= display_args(job.display_args) %></div>
         | 
| 93 96 | 
             
                    </td>
         | 
    
        data/web/views/dead.erb
    CHANGED
    
    | @@ -14,11 +14,11 @@ | |
| 14 14 | 
             
                    <th><%= t('ErrorMessage') %></th>
         | 
| 15 15 | 
             
                    <td><%= h(@dead['error_message']) %></td>
         | 
| 16 16 | 
             
                  </tr>
         | 
| 17 | 
            -
                  <% if  | 
| 17 | 
            +
                  <% if @dead.error_backtrace %>
         | 
| 18 18 | 
             
                    <tr>
         | 
| 19 19 | 
             
                      <th><%= t('ErrorBacktrace') %></th>
         | 
| 20 20 | 
             
                      <td>
         | 
| 21 | 
            -
                        <code><%= @dead | 
| 21 | 
            +
                        <code><%= @dead.error_backtrace.join("<br/>") %></code>
         | 
| 22 22 | 
             
                      </td>
         | 
| 23 23 | 
             
                    </tr>
         | 
| 24 24 | 
             
                  <% end %>
         | 
    
        data/web/views/layout.erb
    CHANGED
    
    | @@ -11,6 +11,7 @@ | |
| 11 11 | 
             
                <% end %>
         | 
| 12 12 |  | 
| 13 13 | 
             
                <link href="<%= root_path %>stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />
         | 
| 14 | 
            +
                <link href="<%= root_path %>stylesheets/application-dark.css" media="screen" rel="stylesheet" type="text/css" />
         | 
| 14 15 | 
             
                <% if rtl? %>
         | 
| 15 16 | 
             
                <link href="<%= root_path %>stylesheets/application-rtl.css" media="screen" rel="stylesheet" type="text/css" />
         | 
| 16 17 | 
             
                <% end %>
         | 
    
        data/web/views/morgue.erb
    CHANGED
    
    | @@ -42,7 +42,10 @@ | |
| 42 42 | 
             
                        <td>
         | 
| 43 43 | 
             
                          <a href="<%= root_path %>queues/<%= entry.queue %>"><%= entry.queue %></a>
         | 
| 44 44 | 
             
                        </td>
         | 
| 45 | 
            -
                        <td | 
| 45 | 
            +
                        <td>
         | 
| 46 | 
            +
                          <%= entry.display_class %>
         | 
| 47 | 
            +
                          <%= display_tags(entry, "morgue") %>
         | 
| 48 | 
            +
                        </td>
         | 
| 46 49 | 
             
                        <td>
         | 
| 47 50 | 
             
                          <div class="args"><%= display_args(entry.display_args) %></div>
         | 
| 48 51 | 
             
                        </td>
         | 
    
        data/web/views/queue.erb
    CHANGED
    
    | @@ -15,13 +15,22 @@ | |
| 15 15 | 
             
            <div class="table_container">
         | 
| 16 16 | 
             
              <table class="queue table table-hover table-bordered table-striped">
         | 
| 17 17 | 
             
                <thead>
         | 
| 18 | 
            +
                  <th><a href="<%= url %>?direction=<%= params[:direction] == 'asc' ? 'desc' : 'asc' %>"># <%= sort_direction_label %></a></th>
         | 
| 18 19 | 
             
                  <th><%= t('Job') %></th>
         | 
| 19 20 | 
             
                  <th><%= t('Arguments') %></th>
         | 
| 20 21 | 
             
                  <th></th>
         | 
| 21 22 | 
             
                </thead>
         | 
| 22 23 | 
             
                <% @messages.each_with_index do |msg, index| %>
         | 
| 23 24 | 
             
                  <tr>
         | 
| 24 | 
            -
                     | 
| 25 | 
            +
                    <% if params[:direction] == 'asc' %>
         | 
| 26 | 
            +
                      <td><%= @count * (@current_page - 1) + index + 1 %></td>
         | 
| 27 | 
            +
                    <% else %>
         | 
| 28 | 
            +
                      <td><%= @total_size - (@count * (@current_page - 1) + index) %></td>
         | 
| 29 | 
            +
                    <% end %>
         | 
| 30 | 
            +
                    <td>
         | 
| 31 | 
            +
                      <%= h(msg.display_class) %>
         | 
| 32 | 
            +
                      <%= display_tags(msg, nil) %>
         | 
| 33 | 
            +
                    </td>
         | 
| 25 34 | 
             
                    <td>
         | 
| 26 35 | 
             
                      <% a = msg.display_args %>
         | 
| 27 36 | 
             
                      <% if a.inspect.size > 100 %>
         | 
    
        data/web/views/retries.erb
    CHANGED
    
    | @@ -44,7 +44,10 @@ | |
| 44 44 | 
             
                        <td>
         | 
| 45 45 | 
             
                          <a href="<%= root_path %>queues/<%= entry.queue %>"><%= entry.queue %></a>
         | 
| 46 46 | 
             
                        </td>
         | 
| 47 | 
            -
                        <td | 
| 47 | 
            +
                        <td>
         | 
| 48 | 
            +
                          <%= entry.display_class %>
         | 
| 49 | 
            +
                          <%= display_tags(entry, "retries") %>
         | 
| 50 | 
            +
                        </td>
         | 
| 48 51 | 
             
                        <td>
         | 
| 49 52 | 
             
                          <div class="args"><%= display_args(entry.display_args) %></div>
         | 
| 50 53 | 
             
                        </td>
         | 
    
        data/web/views/retry.erb
    CHANGED
    
    | @@ -14,11 +14,11 @@ | |
| 14 14 | 
             
                    <th><%= t('ErrorMessage') %></th>
         | 
| 15 15 | 
             
                    <td><%= h(@retry['error_message']) %></td>
         | 
| 16 16 | 
             
                  </tr>
         | 
| 17 | 
            -
                  <% if  | 
| 17 | 
            +
                  <% if @retry.error_backtrace %>
         | 
| 18 18 | 
             
                    <tr>
         | 
| 19 19 | 
             
                      <th><%= t('ErrorBacktrace') %></th>
         | 
| 20 20 | 
             
                      <td>
         | 
| 21 | 
            -
                        <code><%= @retry | 
| 21 | 
            +
                        <code><%= @retry.error_backtrace.join("<br/>") %></code>
         | 
| 22 22 | 
             
                      </td>
         | 
| 23 23 | 
             
                    </tr>
         | 
| 24 24 | 
             
                  <% end %>
         | 
    
        data/web/views/scheduled.erb
    CHANGED
    
    | @@ -38,7 +38,10 @@ | |
| 38 38 | 
             
                        <td>
         | 
| 39 39 | 
             
                          <a href="<%= root_path %>queues/<%= entry.queue %>"><%= entry.queue %></a>
         | 
| 40 40 | 
             
                        </td>
         | 
| 41 | 
            -
                        <td | 
| 41 | 
            +
                        <td>
         | 
| 42 | 
            +
                          <%= entry.display_class %>
         | 
| 43 | 
            +
                          <%= display_tags(entry, "scheduled") %>
         | 
| 44 | 
            +
                        </td>
         | 
| 42 45 | 
             
                        <td>
         | 
| 43 46 | 
             
                           <div class="args"><%= display_args(entry.display_args) %></div>
         | 
| 44 47 | 
             
                        </td>
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: sidekiq
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 6.0. | 
| 4 | 
            +
              version: 6.0.3
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Mike Perham
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2019- | 
| 11 | 
            +
            date: 2019-10-25 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: redis
         | 
| @@ -71,6 +71,7 @@ email: | |
| 71 71 | 
             
            - mperham@gmail.com
         | 
| 72 72 | 
             
            executables:
         | 
| 73 73 | 
             
            - sidekiq
         | 
| 74 | 
            +
            - sidekiqmon
         | 
| 74 75 | 
             
            extensions: []
         | 
| 75 76 | 
             
            extra_rdoc_files: []
         | 
| 76 77 | 
             
            files:
         | 
| @@ -145,6 +146,7 @@ files: | |
| 145 146 | 
             
            - web/assets/images/status.png
         | 
| 146 147 | 
             
            - web/assets/javascripts/application.js
         | 
| 147 148 | 
             
            - web/assets/javascripts/dashboard.js
         | 
| 149 | 
            +
            - web/assets/stylesheets/application-dark.css
         | 
| 148 150 | 
             
            - web/assets/stylesheets/application-rtl.css
         | 
| 149 151 | 
             
            - web/assets/stylesheets/application.css
         | 
| 150 152 | 
             
            - web/assets/stylesheets/bootstrap-rtl.min.css
         | 
| @@ -212,8 +214,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 212 214 | 
             
                - !ruby/object:Gem::Version
         | 
| 213 215 | 
             
                  version: '0'
         | 
| 214 216 | 
             
            requirements: []
         | 
| 215 | 
            -
             | 
| 216 | 
            -
            rubygems_version: 2.7.6
         | 
| 217 | 
            +
            rubygems_version: 3.0.3
         | 
| 217 218 | 
             
            signing_key: 
         | 
| 218 219 | 
             
            specification_version: 4
         | 
| 219 220 | 
             
            summary: Simple, efficient background processing for Ruby
         |