sidekiq 2.9.0 → 2.10.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.
- data/.gitignore +1 -0
- data/Changes.md +12 -0
- data/README.md +12 -10
- data/lib/sidekiq/manager.rb +19 -14
- data/lib/sidekiq/scheduled.rb +19 -14
- data/lib/sidekiq/version.rb +1 -1
- data/lib/sidekiq/web.rb +10 -0
- data/sidekiq.gemspec +3 -2
- data/test/test_retry.rb +0 -22
- data/test/test_scheduled.rb +48 -0
- data/web/locales/da.yml +59 -0
- data/web/locales/de.yml +59 -0
- data/web/locales/en.yml +61 -0
- data/web/locales/es.yml +59 -0
- data/web/locales/fr.yml +59 -0
- data/web/locales/it.yml +59 -0
- data/web/locales/pl.yml +59 -0
- data/web/locales/pt-br.yml +59 -0
- data/web/locales/pt.yml +59 -0
- data/web/locales/ru.yml +59 -0
- data/web/views/_nav.slim +2 -2
- data/web/views/_paging.slim +0 -0
- data/web/views/_status.slim +1 -1
- data/web/views/_summary.slim +6 -6
- data/web/views/_workers.slim +6 -6
- data/web/views/dashboard.slim +12 -12
- data/web/views/index.slim +2 -2
- data/web/views/layout.slim +5 -5
- data/web/views/queue.slim +5 -6
- data/web/views/queues.slim +5 -5
- data/web/views/retries.slim +11 -11
- data/web/views/retry.slim +16 -16
- data/web/views/scheduled.slim +7 -7
- metadata +41 -13
data/web/views/_workers.slim
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
table class="workers table table-hover table-bordered table-striped table-white"
|
2
2
|
thead
|
3
|
-
th Worker
|
4
|
-
th Queue
|
5
|
-
th Class
|
6
|
-
th Arguments
|
7
|
-
th Started
|
3
|
+
th = t('Worker')
|
4
|
+
th = t('Queue')
|
5
|
+
th = t('Class')
|
6
|
+
th = t('Arguments')
|
7
|
+
th = t('Started')
|
8
8
|
- workers.each_with_index do |(worker, msg), index|
|
9
9
|
tr
|
10
10
|
td= worker
|
@@ -14,7 +14,7 @@ table class="workers table table-hover table-bordered table-striped table-white"
|
|
14
14
|
td
|
15
15
|
- if msg['payload']['args'].to_s.size > 100
|
16
16
|
= msg['payload']['args'].inspect[0..100] + "... "
|
17
|
-
button data-toggle="collapse" data-target="#worker_#{index}" class="btn btn-mini"
|
17
|
+
button data-toggle="collapse" data-target="#worker_#{index}" class="btn btn-mini" = t('ShowAll')
|
18
18
|
.toggle[id="worker_#{index}" style="display: none;max-width: 750px;"]= msg['payload']['args']
|
19
19
|
- else
|
20
20
|
= msg['payload']['args']
|
data/web/views/dashboard.slim
CHANGED
@@ -1,20 +1,20 @@
|
|
1
1
|
script type="text/javascript" src="#{{root_path}}javascripts/dashboard.js"
|
2
2
|
|
3
3
|
h3
|
4
|
-
|
4
|
+
= t('Dashboard')
|
5
5
|
span.beacon
|
6
6
|
.ring
|
7
7
|
.dot
|
8
8
|
|
9
|
-
h5
|
9
|
+
h5 = t('Realtime')
|
10
10
|
#realtime
|
11
11
|
|
12
12
|
h5
|
13
|
-
span.history-heading History
|
14
|
-
a href="#{{root_path}}?days=7" class="history-graph #{{"active" if params[:days] == "7"}}"
|
15
|
-
a href="#{{root_path}}" class="history-graph #{{"active" if params[:days].nil? || params[:days] == "30"}}"
|
16
|
-
a href="#{{root_path}}?days=90" class="history-graph #{{"active" if params[:days] == "90"}}"
|
17
|
-
a href="#{{root_path}}?days=180" class="history-graph #{{"active" if params[:days] == "180"}}"
|
13
|
+
span.history-heading = t('History')
|
14
|
+
a href="#{{root_path}}?days=7" class="history-graph #{{"active" if params[:days] == "7"}}" = t('OneWeek')
|
15
|
+
a href="#{{root_path}}" class="history-graph #{{"active" if params[:days].nil? || params[:days] == "30"}}" = t('OneMonth')
|
16
|
+
a href="#{{root_path}}?days=90" class="history-graph #{{"active" if params[:days] == "90"}}" = t('ThreeMonths')
|
17
|
+
a href="#{{root_path}}?days=180" class="history-graph #{{"active" if params[:days] == "180"}}" = t('SixMonths')
|
18
18
|
#history data-processed="#{Sidekiq.dump_json(@processed_history)}" data-failed="#{Sidekiq.dump_json(@failed_history)}" data-update-url="#{{root_path}}dashboard/stats"
|
19
19
|
|
20
20
|
br
|
@@ -23,24 +23,24 @@ h5 Redis
|
|
23
23
|
- if @redis_info.fetch("redis_version", nil)
|
24
24
|
.stat
|
25
25
|
h3.redis_version= @redis_info.fetch("redis_version")
|
26
|
-
p Version
|
26
|
+
p = t('Version')
|
27
27
|
|
28
28
|
- if @redis_info.fetch("uptime_in_days", nil)
|
29
29
|
.stat
|
30
30
|
h3.uptime_in_days= @redis_info.fetch("uptime_in_days")
|
31
|
-
p
|
31
|
+
p = t('Uptime')
|
32
32
|
|
33
33
|
- if @redis_info.fetch("connected_clients", nil)
|
34
34
|
.stat
|
35
35
|
h3.connected_clients= @redis_info.fetch("connected_clients")
|
36
|
-
p Connections
|
36
|
+
p = t('Connections')
|
37
37
|
|
38
38
|
- if @redis_info.fetch("used_memory_human", nil)
|
39
39
|
.stat
|
40
40
|
h3.used_memory_human= @redis_info.fetch("used_memory_human")
|
41
|
-
p
|
41
|
+
p = t('MemoryUsage')
|
42
42
|
|
43
43
|
- if @redis_info.fetch("used_memory_peak_human", nil)
|
44
44
|
.stat
|
45
45
|
h3.used_memory_peak_human= @redis_info.fetch("used_memory_peak_human")
|
46
|
-
p
|
46
|
+
p = t('PeakMemoryUsage')
|
data/web/views/index.slim
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
.row.header
|
2
2
|
.span7
|
3
|
-
h3 Workers
|
3
|
+
h3 = t('Workers')
|
4
4
|
|
5
5
|
== slim :_workers
|
6
6
|
- if workers.size > 0
|
7
7
|
.row
|
8
8
|
.span2.pull-right
|
9
9
|
form action="#{root_path}reset" method="post"
|
10
|
-
button.btn.btn-primary.btn-block type="submit" title="
|
10
|
+
button.btn.btn-primary.btn-block type="submit" title="#{t('Kill9Warning')}" = t('ClearWorkerList')
|
data/web/views/layout.slim
CHANGED
@@ -23,26 +23,26 @@ html
|
|
23
23
|
li
|
24
24
|
p.navbar-text Redis: #{location}
|
25
25
|
li
|
26
|
-
p.navbar-text Time: #{Time.now.utc.strftime('%H:%M:%S UTC')}
|
26
|
+
p.navbar-text #{t('Time')}: #{Time.now.utc.strftime('%H:%M:%S UTC')}
|
27
27
|
- if namespace
|
28
28
|
li
|
29
|
-
p.navbar-text Namespace: #{namespace}
|
29
|
+
p.navbar-text #{t('Namespace')}: #{namespace}
|
30
30
|
|
31
31
|
#page
|
32
32
|
.container
|
33
33
|
.row
|
34
34
|
.span2.summary_bar
|
35
35
|
h4
|
36
|
-
span.title Status
|
36
|
+
span.title = t('Status')
|
37
37
|
== slim :_status
|
38
38
|
== slim :_summary
|
39
39
|
- unless current_path == ''
|
40
40
|
.row
|
41
41
|
.span2
|
42
42
|
- if params[:poll]
|
43
|
-
a#live-poll.btn.btn-block.btn-primary.active href='#{{root_path}}#{{current_path}}'
|
43
|
+
a#live-poll.btn.btn-block.btn-primary.active href='#{{root_path}}#{{current_path}}' = t('StopPolling')
|
44
44
|
- else
|
45
|
-
a#live-poll.btn.btn-block.btn-primary href='#{{root_path}}#{{current_path}}?poll=true'
|
45
|
+
a#live-poll.btn.btn-block.btn-primary href='#{{root_path}}#{{current_path}}?poll=true' = t('LivePoll')
|
46
46
|
|
47
47
|
.span10
|
48
48
|
== yield
|
data/web/views/queue.slim
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
header.row
|
2
2
|
.span5
|
3
3
|
h3
|
4
|
-
|
5
|
-
span.title #{@name}
|
4
|
+
== t('CurrentMessagesInQueue', :queue => @name)
|
6
5
|
.span4
|
7
6
|
== slim :_paging, :locals => { :url => "#{root_path}queues/#{@name}" }
|
8
7
|
|
9
8
|
table class="queue table table-hover table-bordered table-striped"
|
10
9
|
thead
|
11
|
-
th Class
|
12
|
-
th Arguments
|
10
|
+
th = t('Class')
|
11
|
+
th = t('Arguments')
|
13
12
|
th
|
14
13
|
- @messages.each_with_index do |msg, index|
|
15
14
|
tr
|
@@ -17,12 +16,12 @@ table class="queue table table-hover table-bordered table-striped"
|
|
17
16
|
td
|
18
17
|
- if msg['args'] and msg['args'].to_s.size > 100
|
19
18
|
= msg['args'].inspect[0..100] + "... "
|
20
|
-
button data-toggle="collapse" data-target="#worker_#{index}" class="btn btn-mini"
|
19
|
+
button data-toggle="collapse" data-target="#worker_#{index}" class="btn btn-mini" = t('ShowAll')
|
21
20
|
.toggle[id="worker_#{index}" style="display: none;"]= msg['args']
|
22
21
|
- else
|
23
22
|
= msg['args']
|
24
23
|
td
|
25
24
|
form action="#{root_path}queues/#{@name}/delete" method="post"
|
26
25
|
input name="key_val" value="#{Sidekiq.dump_json(msg)}" type="hidden"
|
27
|
-
input.btn.btn-danger.btn-mini type="submit" name="delete" value="Delete" data-confirm="
|
26
|
+
input.btn.btn-danger.btn-mini type="submit" name="delete" value="#{t('Delete')}" data-confirm="#{t('AreYouSure')}"
|
28
27
|
== slim :_paging, :locals => { :url => "#{root_path}queues/#{@name}" }
|
data/web/views/queues.slim
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
h3 Queues
|
1
|
+
h3 = t('Queues')
|
2
2
|
|
3
3
|
table class="queues table table-hover table-bordered table-striped table-white"
|
4
4
|
thead
|
5
|
-
th Queue
|
6
|
-
th Size
|
7
|
-
th Actions
|
5
|
+
th = t('Queue')
|
6
|
+
th = t('Size')
|
7
|
+
th = t('Actions')
|
8
8
|
- @queues.each do |queue, size|
|
9
9
|
tr
|
10
10
|
td
|
@@ -12,4 +12,4 @@ table class="queues table table-hover table-bordered table-striped table-white"
|
|
12
12
|
td= number_with_delimiter(size)
|
13
13
|
td width="20%"
|
14
14
|
form action="#{root_path}queues/#{queue}" method="post"
|
15
|
-
input.btn.btn-danger.btn-small type="submit" name="delete" value="Delete" data-confirm="
|
15
|
+
input.btn.btn-danger.btn-small type="submit" name="delete" value="#{t('Delete')}" data-confirm="#{t('AreYouSureDeleteQueue', :queue => queue)}"
|
data/web/views/retries.slim
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
header.row
|
2
2
|
.span5
|
3
|
-
h3 Retries
|
3
|
+
h3 = t('Retries')
|
4
4
|
.span4
|
5
5
|
- if @retries.size > 0
|
6
6
|
== slim :_paging, :locals => { :url => "#{root_path}retries" }
|
@@ -12,11 +12,11 @@ header.row
|
|
12
12
|
tr
|
13
13
|
th width="20px"
|
14
14
|
input type="checkbox" class="check_all"
|
15
|
-
th width="25%"
|
16
|
-
th width="11%"
|
17
|
-
th Queue
|
18
|
-
th Worker
|
19
|
-
th
|
15
|
+
th width="25%" = t('NextRetry')
|
16
|
+
th width="11%" = t('RetryCount')
|
17
|
+
th = t('Queue')
|
18
|
+
th = t('Worker')
|
19
|
+
th = t('Arguments')
|
20
20
|
- @retries.each do |msg, score|
|
21
21
|
tr
|
22
22
|
td
|
@@ -28,13 +28,13 @@ header.row
|
|
28
28
|
a href="#{root_path}queues/#{msg['queue']}" #{msg['queue']}
|
29
29
|
td= msg['class']
|
30
30
|
td= display_args(msg['args'])
|
31
|
-
input.btn.btn-primary.btn-small.pull-left type="submit" name="retry" value="
|
32
|
-
input.btn.btn-danger.btn-small.pull-left type="submit" name="delete" value="Delete"
|
31
|
+
input.btn.btn-primary.btn-small.pull-left type="submit" name="retry" value="#{t('RetryNow')}"
|
32
|
+
input.btn.btn-danger.btn-small.pull-left type="submit" name="delete" value="#{t('Delete')}"
|
33
33
|
|
34
34
|
form action="#{root_path}retries/all/delete" method="post"
|
35
|
-
input.btn.btn-danger.btn-small.pull-right type="submit" name="delete" value="
|
35
|
+
input.btn.btn-danger.btn-small.pull-right type="submit" name="delete" value="#{t('DeleteAll')}" data-confirm="#{t('AreYouSure')}"
|
36
36
|
form action="#{root_path}retries/all/retry" method="post"
|
37
|
-
input.btn.btn-danger.btn-small.pull-right type="submit" name="retry" value="
|
37
|
+
input.btn.btn-danger.btn-small.pull-right type="submit" name="retry" value="#{t('RetryAll')}" data-confirm="#{t('AreYouSure')}"
|
38
38
|
|
39
39
|
- else
|
40
|
-
.alert.alert-success
|
40
|
+
.alert.alert-success = t('NoRetriesFound')
|
data/web/views/retry.slim
CHANGED
@@ -1,55 +1,55 @@
|
|
1
1
|
header
|
2
|
-
h3 Job
|
2
|
+
h3 = t('Job')
|
3
3
|
|
4
4
|
table class="retry table table-bordered table-striped"
|
5
5
|
tbody
|
6
6
|
tr
|
7
|
-
th Queue
|
7
|
+
th = t('Queue')
|
8
8
|
td
|
9
9
|
a href="#{root_path}queues/#{@retry['queue']}" #{@retry['queue']}
|
10
10
|
tr
|
11
|
-
th
|
11
|
+
th = t('Class')
|
12
12
|
td
|
13
13
|
code= @retry['class']
|
14
14
|
tr
|
15
|
-
th
|
15
|
+
th = t('Arguments')
|
16
16
|
td
|
17
17
|
code= display_args(@retry['args'], 1000)
|
18
18
|
tr
|
19
|
-
th
|
19
|
+
th JID
|
20
20
|
td
|
21
21
|
code= @retry.jid
|
22
22
|
- if @retry['retry_count'] > 0
|
23
23
|
tr
|
24
|
-
th
|
24
|
+
th = t('RetryCount')
|
25
25
|
td= @retry['retry_count']
|
26
26
|
tr
|
27
|
-
th
|
27
|
+
th = t('LastRetry')
|
28
28
|
td== relative_time(@retry['retried_at'].is_a?(Numeric) ? Time.at(@retry['retried_at']) : Time.parse(@retry['retried_at']))
|
29
29
|
- else
|
30
30
|
tr
|
31
|
-
th
|
31
|
+
th = t('OriginallyFailed')
|
32
32
|
td== relative_time(@retry['failed_at'].is_a?(Numeric) ? Time.at(@retry['failed_at']) : Time.parse(@retry['failed_at']))
|
33
33
|
tr
|
34
|
-
th
|
34
|
+
th = t('NextRetry')
|
35
35
|
td== relative_time(Time.at(@retry.score))
|
36
36
|
|
37
|
-
h3 Error
|
37
|
+
h3 = t('Error')
|
38
38
|
table class="error table table-bordered table-striped"
|
39
39
|
tbody
|
40
40
|
tr
|
41
|
-
th
|
41
|
+
th = t('ErrorClass')
|
42
42
|
td
|
43
43
|
code= @retry['error_class']
|
44
44
|
tr
|
45
|
-
th
|
45
|
+
th = t('ErrorMessage')
|
46
46
|
td= @retry['error_message']
|
47
47
|
- if !@retry['error_backtrace'].nil?
|
48
48
|
tr
|
49
|
-
th
|
49
|
+
th = t('ErrorBacktrace')
|
50
50
|
td
|
51
51
|
code== @retry['error_backtrace'].join("<br/>")
|
52
52
|
form.form-horizontal action="#{root_path}retries/#{job_params(@retry, @retry.score)}" method="post"
|
53
|
-
a.btn href="#{root_path}retries"
|
54
|
-
input.btn.btn-primary type="submit" name="retry" value="
|
55
|
-
input.btn.btn-danger type="submit" name="delete" value="Delete"
|
53
|
+
a.btn href="#{root_path}retries" = t('GoBack')
|
54
|
+
input.btn.btn-primary type="submit" name="retry" value="#{t('RetryNow')}"
|
55
|
+
input.btn.btn-danger type="submit" name="delete" value="#{t('Delete')}"
|
data/web/views/scheduled.slim
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
header.row
|
2
2
|
.span5
|
3
|
-
h3
|
3
|
+
h3 = t('ScheduledJobs')
|
4
4
|
.span4
|
5
5
|
- if @scheduled.size > 0
|
6
6
|
== slim :_paging, :locals => { :url => "#{root_path}scheduled" }
|
@@ -12,10 +12,10 @@ header.row
|
|
12
12
|
thead
|
13
13
|
th width="20px"
|
14
14
|
input type="checkbox" class="check_all"
|
15
|
-
th width="25%" When
|
16
|
-
th width="10%" Queue
|
17
|
-
th Worker
|
18
|
-
th
|
15
|
+
th width="25%" = t('When')
|
16
|
+
th width="10%" = t('Queue')
|
17
|
+
th = t('Worker')
|
18
|
+
th = t('Arguments')
|
19
19
|
- @scheduled.each do |msg, score|
|
20
20
|
tr
|
21
21
|
td
|
@@ -25,6 +25,6 @@ header.row
|
|
25
25
|
a href="#{root_path}queues/#{msg['queue']}" #{msg['queue']}
|
26
26
|
td= msg['class']
|
27
27
|
td= display_args(msg['args'])
|
28
|
-
input.btn.btn-danger.pull-right type="submit" name="delete" value="Delete"
|
28
|
+
input.btn.btn-danger.pull-right type="submit" name="delete" value="#{t('Delete')}"
|
29
29
|
- else
|
30
|
-
.alert.alert-success
|
30
|
+
.alert.alert-success = t('NoScheduledFound')
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sidekiq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.10.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-04-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: redis
|
@@ -92,30 +92,30 @@ dependencies:
|
|
92
92
|
- !ruby/object:Gem::Version
|
93
93
|
version: '1'
|
94
94
|
- !ruby/object:Gem::Dependency
|
95
|
-
name:
|
95
|
+
name: sinatra
|
96
96
|
requirement: !ruby/object:Gem::Requirement
|
97
97
|
none: false
|
98
98
|
requirements:
|
99
|
-
- -
|
99
|
+
- - ! '>='
|
100
100
|
- !ruby/object:Gem::Version
|
101
|
-
version: '
|
102
|
-
type: :
|
101
|
+
version: '0'
|
102
|
+
type: :runtime
|
103
103
|
prerelease: false
|
104
104
|
version_requirements: !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
|
-
- -
|
107
|
+
- - ! '>='
|
108
108
|
- !ruby/object:Gem::Version
|
109
|
-
version: '
|
109
|
+
version: '0'
|
110
110
|
- !ruby/object:Gem::Dependency
|
111
|
-
name:
|
111
|
+
name: slim
|
112
112
|
requirement: !ruby/object:Gem::Requirement
|
113
113
|
none: false
|
114
114
|
requirements:
|
115
115
|
- - ! '>='
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '0'
|
118
|
-
type: :
|
118
|
+
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
none: false
|
@@ -124,14 +124,14 @@ dependencies:
|
|
124
124
|
- !ruby/object:Gem::Version
|
125
125
|
version: '0'
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
|
-
name:
|
127
|
+
name: i18n
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
129
129
|
none: false
|
130
130
|
requirements:
|
131
131
|
- - ! '>='
|
132
132
|
- !ruby/object:Gem::Version
|
133
133
|
version: '0'
|
134
|
-
type: :
|
134
|
+
type: :runtime
|
135
135
|
prerelease: false
|
136
136
|
version_requirements: !ruby/object:Gem::Requirement
|
137
137
|
none: false
|
@@ -139,6 +139,22 @@ dependencies:
|
|
139
139
|
- - ! '>='
|
140
140
|
- !ruby/object:Gem::Version
|
141
141
|
version: '0'
|
142
|
+
- !ruby/object:Gem::Dependency
|
143
|
+
name: minitest
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
147
|
+
- - ~>
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '4'
|
150
|
+
type: :development
|
151
|
+
prerelease: false
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ~>
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '4'
|
142
158
|
- !ruby/object:Gem::Dependency
|
143
159
|
name: rake
|
144
160
|
requirement: !ruby/object:Gem::Requirement
|
@@ -271,6 +287,7 @@ files:
|
|
271
287
|
- test/test_processor.rb
|
272
288
|
- test/test_redis_connection.rb
|
273
289
|
- test/test_retry.rb
|
290
|
+
- test/test_scheduled.rb
|
274
291
|
- test/test_scheduling.rb
|
275
292
|
- test/test_sidekiq.rb
|
276
293
|
- test/test_testing.rb
|
@@ -286,6 +303,16 @@ files:
|
|
286
303
|
- web/assets/javascripts/dashboard.js
|
287
304
|
- web/assets/stylesheets/application.css
|
288
305
|
- web/assets/stylesheets/bootstrap.css
|
306
|
+
- web/locales/da.yml
|
307
|
+
- web/locales/de.yml
|
308
|
+
- web/locales/en.yml
|
309
|
+
- web/locales/es.yml
|
310
|
+
- web/locales/fr.yml
|
311
|
+
- web/locales/it.yml
|
312
|
+
- web/locales/pl.yml
|
313
|
+
- web/locales/pt-br.yml
|
314
|
+
- web/locales/pt.yml
|
315
|
+
- web/locales/ru.yml
|
289
316
|
- web/views/_nav.slim
|
290
317
|
- web/views/_paging.slim
|
291
318
|
- web/views/_status.slim
|
@@ -320,7 +347,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
320
347
|
version: '0'
|
321
348
|
requirements: []
|
322
349
|
rubyforge_project:
|
323
|
-
rubygems_version: 1.8.
|
350
|
+
rubygems_version: 1.8.23
|
324
351
|
signing_key:
|
325
352
|
specification_version: 3
|
326
353
|
summary: Simple, efficient message processing for Ruby
|
@@ -339,6 +366,7 @@ test_files:
|
|
339
366
|
- test/test_processor.rb
|
340
367
|
- test/test_redis_connection.rb
|
341
368
|
- test/test_retry.rb
|
369
|
+
- test/test_scheduled.rb
|
342
370
|
- test/test_scheduling.rb
|
343
371
|
- test/test_sidekiq.rb
|
344
372
|
- test/test_testing.rb
|