capistrano_multiconfig_parallel 1.6.0 → 1.7.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/capistrano_multiconfig_parallel.gemspec +1 -1
- data/lib/capistrano_multiconfig_parallel/base.rb +1 -1
- data/lib/capistrano_multiconfig_parallel/celluloid/celluloid_manager.rb +2 -1
- data/lib/capistrano_multiconfig_parallel/celluloid/celluloid_worker.rb +3 -0
- data/lib/capistrano_multiconfig_parallel/classes/rake_task_hooks.rb +4 -0
- data/lib/capistrano_multiconfig_parallel/helpers/base_actor_helper.rb +24 -8
- data/lib/capistrano_multiconfig_parallel/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 663547541ff47210168ea5bf1322ebdb9fe0df58
|
4
|
+
data.tar.gz: 1f2710ed5c8b320293923f20448a7d0c6d52e099
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 552ce1999eda34099cb20965dfb2784fbd61e476b0386a50a2bbd955593720009eafab39bf81278d094ef774ecd36ad1e2ba2e6b4d1a7423c16055068cec3a43
|
7
|
+
data.tar.gz: 6cbb53c3de91c94ad595a8f21556b7de039a3db07c5ae43dbfd38d6350b360c662c30ca7a2fbad8a7ed11e9ba67829126f168f020bf195594484bb70be5e19fd
|
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
|
20
20
|
s.add_runtime_dependency 'celluloid', '>= 0.16', '>= 0.16.0'
|
21
21
|
s.add_runtime_dependency 'celluloid-pmap', '~> 0.2', '>= 0.2.2'
|
22
|
-
s.add_runtime_dependency 'celluloid_pubsub', '~> 0.
|
22
|
+
s.add_runtime_dependency 'celluloid_pubsub', '~> 0.8', '>= 0.8.1'
|
23
23
|
s.add_runtime_dependency 'celluloid-websocket-client', '~> 0.0', '>= 0.0.1'
|
24
24
|
s.add_runtime_dependency 'composable_state_machine', '~> 1.0', '>= 1.0.2'
|
25
25
|
s.add_runtime_dependency 'terminal-table', '~> 1.5', '>= 1.5.2'
|
@@ -49,7 +49,7 @@ module CapistranoMulticonfigParallel
|
|
49
49
|
|
50
50
|
def set_celluloid_exception_handling
|
51
51
|
Celluloid.logger = logger
|
52
|
-
Celluloid.task_class = Celluloid::TaskThread
|
52
|
+
Celluloid.task_class = defined?(Celluloid::TaskThread) ? Celluloid::TaskThread : Celluloid::Task::Threaded
|
53
53
|
Celluloid.exception_handler do |ex|
|
54
54
|
unless ex.is_a?(Interrupt)
|
55
55
|
rescue_error(ex, 'stderr')
|
@@ -21,7 +21,8 @@ module CapistranoMulticonfigParallel
|
|
21
21
|
# Get a handle on the SupervisionGroup::Member
|
22
22
|
@mutex = Mutex.new
|
23
23
|
# http://rubydoc.info/gems/celluloid/Celluloid/SupervisionGroup/Member
|
24
|
-
|
24
|
+
setup_pool_of_actor(@worker_supervisor, actor_name: :workers, type: CapistranoMulticonfigParallel::CelluloidWorker, size: 10)
|
25
|
+
@workers = Celluloid::Actor[:workers]
|
25
26
|
Actor.current.link @workers
|
26
27
|
setup_actor_supervision(@worker_supervisor, actor_name: :terminal_server, type: CapistranoMulticonfigParallel::TerminalTable, args: [Actor.current, @job_manager, configuration.fetch(:terminal, {})])
|
27
28
|
setup_actor_supervision(@worker_supervisor, actor_name: :web_server, type: CapistranoMulticonfigParallel::WebServer, args: websocket_config)
|
@@ -25,6 +25,9 @@ module CapistranoMulticonfigParallel
|
|
25
25
|
:successfull_subscription, :subscription_channel, :publisher_channel, # for subscriptions and publishing events
|
26
26
|
:job_termination_condition, :worker_state, :invocation_chain, :filename, :worker_log, :exit_status
|
27
27
|
|
28
|
+
def initialize(*args)
|
29
|
+
end
|
30
|
+
|
28
31
|
def work(job, manager)
|
29
32
|
@job = job
|
30
33
|
@job_id = job.id
|
@@ -74,7 +74,11 @@ module CapistranoMulticonfigParallel
|
|
74
74
|
|
75
75
|
def supervise_actor
|
76
76
|
return unless actor.blank?
|
77
|
+
if CapistranoMulticonfigParallel::BaseActorHelper::ClassMethods.version_less_than_seventeen?
|
77
78
|
CapistranoMulticonfigParallel::RakeWorker.supervise_as(rake_actor_id)
|
79
|
+
else
|
80
|
+
CapistranoMulticonfigParallel::RakeWorker.supervise(as: rake_actor_id)
|
81
|
+
end
|
78
82
|
end
|
79
83
|
|
80
84
|
def rake_actor_id
|
@@ -28,7 +28,7 @@ module CapistranoMulticonfigParallel
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def version_less_than_seventeen?
|
31
|
-
verify_gem_version(
|
31
|
+
verify_gem_version(celluloid_version, '0.17', operator: '<')
|
32
32
|
end
|
33
33
|
end
|
34
34
|
end
|
@@ -37,14 +37,25 @@ module CapistranoMulticonfigParallel
|
|
37
37
|
delegate :version_less_than_seventeen?,
|
38
38
|
to: :'CapistranoMulticonfigParallel::BaseActorHelper::ClassMethods'
|
39
39
|
|
40
|
-
|
41
|
-
|
40
|
+
|
41
|
+
def setup_actor_supervision_details(class_name, options)
|
42
|
+
arguments = (options[:args].is_a?(Array) ? options[:args] : [options[:args]]).compact
|
42
43
|
if version_less_than_seventeen?
|
43
|
-
|
44
|
+
[options[:actor_name], options[:type], *arguments]
|
44
45
|
else
|
45
46
|
#supervises_opts = options[:supervises].present? ? { supervises: options[:supervises] } : {}
|
46
|
-
|
47
|
-
|
47
|
+
{ as: options[:actor_name], type: options[:type], args: arguments, size: options.fetch(:size, nil) }
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
|
52
|
+
def setup_actor_supervision(class_name, options)
|
53
|
+
if version_less_than_seventeen?
|
54
|
+
class_name.supervise_as(*setup_actor_supervision_details(class_name, options))
|
55
|
+
else
|
56
|
+
setup_supervision_group do |supervisor|
|
57
|
+
supervisor.supervise setup_actor_supervision_details(class_name, options)
|
58
|
+
end
|
48
59
|
end
|
49
60
|
end
|
50
61
|
|
@@ -52,7 +63,9 @@ module CapistranoMulticonfigParallel
|
|
52
63
|
if version_less_than_seventeen?
|
53
64
|
Celluloid::SupervisionGroup.run!
|
54
65
|
else
|
55
|
-
Celluloid::Supervision::Container
|
66
|
+
Class.new(Celluloid::Supervision::Container) do
|
67
|
+
yield(self) if block_given?
|
68
|
+
end.run!
|
56
69
|
end
|
57
70
|
end
|
58
71
|
|
@@ -60,7 +73,10 @@ module CapistranoMulticonfigParallel
|
|
60
73
|
if version_less_than_seventeen?
|
61
74
|
class_name.pool(options[:type], as: options[:actor_name], size: options.fetch(:size, 10))
|
62
75
|
else
|
63
|
-
|
76
|
+
options = setup_actor_supervision_details(class_name, options)
|
77
|
+
setup_supervision_group do |supervisor|
|
78
|
+
supervisor.pool *[options[:type], options.except(:type)]
|
79
|
+
end
|
64
80
|
end
|
65
81
|
end
|
66
82
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano_multiconfig_parallel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- bogdanRada
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: celluloid
|
@@ -56,20 +56,20 @@ dependencies:
|
|
56
56
|
requirements:
|
57
57
|
- - "~>"
|
58
58
|
- !ruby/object:Gem::Version
|
59
|
-
version: '0.
|
59
|
+
version: '0.8'
|
60
60
|
- - ">="
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: 0.
|
62
|
+
version: 0.8.1
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
67
|
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: '0.
|
69
|
+
version: '0.8'
|
70
70
|
- - ">="
|
71
71
|
- !ruby/object:Gem::Version
|
72
|
-
version: 0.
|
72
|
+
version: 0.8.1
|
73
73
|
- !ruby/object:Gem::Dependency
|
74
74
|
name: celluloid-websocket-client
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|