Sha256: 75183b30e11513dfcce9716e57dea9ee834054a8bc21991639d9eca592708b6a
Contents?: true
Size: 1.33 KB
Versions: 1
Compression:
Stored size: 1.33 KB
Contents
require 'celluloid/autostart' require_relative "../celluloid/rake_worker" module CapistranoMulticonfigParallel class ExtensionHelper class << self def inside_job? job_id.present? end def job_id ENV[CapistranoMulticonfigParallel::ENV_KEY_JOB_ID] end def rake_actor_id ENV['count_rake'].present? ? "rake_worker_#{job_id}_count" : "rake_worker_#{job_id}" end def stdin_result Celluloid::Actor[rake_actor_id].stdin_result end def run_stdin_actor Celluloid::Actor[rake_actor_id].wait_execution('stdin') until stdin_result output = stdin_result.dup Celluloid::Actor[rake_actor_id].stdin_result = nil output end def run_the_actor(task) if Celluloid::Actor[rake_actor_id].blank? CapistranoMulticonfigParallel::RakeWorker.supervise_as rake_actor_id Celluloid::Actor[rake_actor_id].work(ENV, actor_id: rake_actor_id, job_id: job_id, task: task) else Celluloid::Actor[rake_actor_id].publish_new_work(ENV, task: task) end until Celluloid::Actor[rake_actor_id].task_approved Celluloid::Actor[rake_actor_id].wait_execution end yield Celluloid::Actor[rake_actor_id] if Celluloid::Actor[rake_actor_id].task_approved end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
capistrano_multiconfig_parallel-0.8.3 | lib/capistrano_multiconfig_parallel/extensions/extension_helper.rb |