barbeque 2.1.0 → 2.2.0
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.
- checksums.yaml +4 -4
- data/app/models/barbeque/job_queue.rb +1 -0
- data/lib/barbeque/execution_poller.rb +4 -2
- data/lib/barbeque/message_queue.rb +2 -2
- data/lib/barbeque/retry_poller.rb +10 -2
- data/lib/barbeque/runner.rb +4 -6
- data/lib/barbeque/version.rb +1 -1
- data/lib/barbeque/worker.rb +8 -3
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8a27e1555a662fc67cff6d20504bff8e7649f761c4c7500e14f8200347a822ee
|
4
|
+
data.tar.gz: 535818478a8701f4c1e00f9600328b9e0e2d6c7ccd45ca16e3851319ac8a4676
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 768ca47dc94d8479804de1a4c9ddbb3f989732eddbb9c8eb2bbc9778503c076d965929a8a5990e663209ea78e87ca61a62cbd874f2d42876018ba339f15031a9
|
7
|
+
data.tar.gz: d916df13c88917745c35e1e32c09b1e0c5d2ad1c2801abee8ec35ec2004d07f9048d1372bdf182652e89966c0249608bf2dabc7d0389d9eecac8708aa78cbcf3
|
@@ -2,6 +2,7 @@ class Barbeque::JobQueue < Barbeque::ApplicationRecord
|
|
2
2
|
SQS_NAME_PREFIX = ENV['BARBEQUE_SQS_NAME_PREFIX'] || 'Barbeque-'
|
3
3
|
SQS_NAME_MAX_LENGTH = 80
|
4
4
|
|
5
|
+
has_many :job_executions, dependent: :destroy
|
5
6
|
has_many :sns_subscriptions, class_name: 'SNSSubscription', dependent: :destroy
|
6
7
|
|
7
8
|
# SQS queue allows [a-zA-Z0-9_-]+ as queue name. Its maximum length is 80.
|
@@ -1,13 +1,15 @@
|
|
1
1
|
require 'barbeque/exception_handler'
|
2
|
+
require 'barbeque/executor'
|
2
3
|
|
3
4
|
module Barbeque
|
4
5
|
class ExecutionPoller
|
5
|
-
def initialize
|
6
|
+
def initialize(job_queue)
|
7
|
+
@job_queue = job_queue
|
6
8
|
@stop_requested = false
|
7
9
|
end
|
8
10
|
|
9
11
|
def run
|
10
|
-
|
12
|
+
@job_queue.job_executions.running.find_in_batches do |job_executions|
|
11
13
|
job_executions.shuffle.each do |job_execution|
|
12
14
|
if @stop_requested
|
13
15
|
return
|
@@ -1,11 +1,19 @@
|
|
1
|
+
require 'barbeque/exception_handler'
|
2
|
+
require 'barbeque/executor'
|
3
|
+
|
1
4
|
module Barbeque
|
2
5
|
class RetryPoller
|
3
|
-
def initialize
|
6
|
+
def initialize(job_queue)
|
7
|
+
@job_queue = job_queue
|
4
8
|
@stop_requested = false
|
5
9
|
end
|
6
10
|
|
7
11
|
def run
|
8
|
-
Barbeque::JobRetry
|
12
|
+
Barbeque::JobRetry
|
13
|
+
.joins(:job_execution)
|
14
|
+
.running
|
15
|
+
.merge(Barbeque::JobExecution.where(job_queue: @job_queue))
|
16
|
+
.find_in_batches do |job_retries|
|
9
17
|
job_retries.shuffle.each do |job_retry|
|
10
18
|
if @stop_requested
|
11
19
|
return
|
data/lib/barbeque/runner.rb
CHANGED
@@ -10,10 +10,8 @@ module Barbeque
|
|
10
10
|
# it to message handler.
|
11
11
|
|
12
12
|
class Runner
|
13
|
-
|
14
|
-
|
15
|
-
def initialize(queue_name: ENV['BARBEQUE_QUEUE'] || DEFAULT_QUEUE)
|
16
|
-
@queue_name = queue_name
|
13
|
+
def initialize(job_queue)
|
14
|
+
@job_queue = job_queue
|
17
15
|
end
|
18
16
|
|
19
17
|
def run
|
@@ -34,7 +32,7 @@ module Barbeque
|
|
34
32
|
private
|
35
33
|
|
36
34
|
def message_queue
|
37
|
-
@message_queue ||= MessageQueue.new(@
|
35
|
+
@message_queue ||= MessageQueue.new(@job_queue)
|
38
36
|
end
|
39
37
|
|
40
38
|
def keep_maximum_concurrent_executions
|
@@ -45,7 +43,7 @@ module Barbeque
|
|
45
43
|
end
|
46
44
|
|
47
45
|
loop do
|
48
|
-
current_num =
|
46
|
+
current_num = @job_queue.job_executions.where(status: [:running, :retried]).count
|
49
47
|
if current_num < max_num
|
50
48
|
return
|
51
49
|
end
|
data/lib/barbeque/version.rb
CHANGED
data/lib/barbeque/worker.rb
CHANGED
@@ -6,6 +6,8 @@ require 'serverengine'
|
|
6
6
|
|
7
7
|
module Barbeque
|
8
8
|
module Worker
|
9
|
+
DEFAULT_QUEUE = ENV['BARBEQUE_DEFAULT_QUEUE'] || 'default'
|
10
|
+
|
9
11
|
class UnexpectedMessageType < StandardError; end
|
10
12
|
|
11
13
|
def self.run(
|
@@ -32,14 +34,17 @@ module Barbeque
|
|
32
34
|
end
|
33
35
|
|
34
36
|
def initialize
|
37
|
+
queue_name = ENV['BARBEQUE_QUEUE'] || DEFAULT_QUEUE
|
38
|
+
queue = Barbeque::JobQueue.find_by!(name: queue_name)
|
39
|
+
|
35
40
|
@command =
|
36
41
|
case worker_id
|
37
42
|
when 0
|
38
|
-
ExecutionPoller.new
|
43
|
+
ExecutionPoller.new(queue)
|
39
44
|
when 1
|
40
|
-
RetryPoller.new
|
45
|
+
RetryPoller.new(queue)
|
41
46
|
else
|
42
|
-
Runner.new
|
47
|
+
Runner.new(queue)
|
43
48
|
end
|
44
49
|
end
|
45
50
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: barbeque
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Takashi Kokubun
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-03-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: adminlte2-rails
|
@@ -263,7 +263,7 @@ dependencies:
|
|
263
263
|
- !ruby/object:Gem::Version
|
264
264
|
version: '0'
|
265
265
|
- !ruby/object:Gem::Dependency
|
266
|
-
name:
|
266
|
+
name: factory_bot_rails
|
267
267
|
requirement: !ruby/object:Gem::Requirement
|
268
268
|
requirements:
|
269
269
|
- - ">="
|
@@ -470,7 +470,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
470
470
|
version: '0'
|
471
471
|
requirements: []
|
472
472
|
rubyforge_project:
|
473
|
-
rubygems_version: 2.7.
|
473
|
+
rubygems_version: 2.7.6
|
474
474
|
signing_key:
|
475
475
|
specification_version: 4
|
476
476
|
summary: Job queue system to run job with Docker
|