capistrano_multiconfig_parallel 1.6.0 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 41637732b5b656f58b1abf8a34ee438c4a462f8d
4
- data.tar.gz: 5a7ffd4a138edf79c01bb8af11817c082ffa7f34
3
+ metadata.gz: 663547541ff47210168ea5bf1322ebdb9fe0df58
4
+ data.tar.gz: 1f2710ed5c8b320293923f20448a7d0c6d52e099
5
5
  SHA512:
6
- metadata.gz: cac726968d4d54a923ad181e6cb6291df404e2939d74d12910afd5eae36ba6d99ccc701e7d00fe7a2bd2ec9dd2276a63f57808c96352581fffc1d221d603ee1e
7
- data.tar.gz: b20ab1b87988c254de6d0d925fa472c86e0fcaabdc4ece5f7911b5af9aed31b773e0e3bbec51acd2a6217e6f7c0a0c687ccbf1a1264fb57abdb27791f3d836dd
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.7', '>= 0.7.2'
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
- @workers = setup_pool_of_actor(@worker_supervisor, actor_name: :workers, type: CapistranoMulticonfigParallel::CelluloidWorker, size: 10)
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('celluloid', '0.17', operator: '<')
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
- def setup_actor_supervision(class_name, options)
41
- arguments = options[:args].is_a?(Array) ? options[:args] : [options[:args]]
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
- class_name.supervise_as(options[:actor_name], options[:type], *arguments)
44
+ [options[:actor_name], options[:type], *arguments]
44
45
  else
45
46
  #supervises_opts = options[:supervises].present? ? { supervises: options[:supervises] } : {}
46
- default_opts = options[:actor_name].present? ? { as: options[:actor_name], type: options[:type], args: arguments, size: options.fetch(:size, nil) } : {}
47
- class_name.supervise(default_opts)
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.run!
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
- setup_actor_supervision(class_name, options)
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
@@ -7,7 +7,7 @@ module CapistranoMulticonfigParallel
7
7
  # module used for generating the version
8
8
  module VERSION
9
9
  MAJOR = 1
10
- MINOR = 6
10
+ MINOR = 7
11
11
  TINY = 0
12
12
  PRE = nil
13
13
 
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.6.0
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-05 00:00:00.000000000 Z
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.7'
59
+ version: '0.8'
60
60
  - - ">="
61
61
  - !ruby/object:Gem::Version
62
- version: 0.7.2
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.7'
69
+ version: '0.8'
70
70
  - - ">="
71
71
  - !ruby/object:Gem::Version
72
- version: 0.7.2
72
+ version: 0.8.1
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: celluloid-websocket-client
75
75
  requirement: !ruby/object:Gem::Requirement