Class: Vedeu::Distributed::Subprocess
- Inherits:
-
Object
- Object
- Vedeu::Distributed::Subprocess
- Defined in:
- lib/vedeu/distributed/subprocess.rb
Overview
Instance Attribute Summary collapse
- #application ⇒ Vedeu::TestApplication readonly protected
- #pid ⇒ Fixnum readonly protected
Class Method Summary collapse
Instance Method Summary collapse
- #command ⇒ String private
-
#execute! ⇒ Array
:nocov:.
- #file_close ⇒ NilClass private
- #file_name ⇒ String private
- #file_open ⇒ File (also: #file) private
-
#file_path ⇒ Object
private
return [String].
-
#file_unlink ⇒ Fixnum
private
The number of files removed; 1.
-
#file_write ⇒ Fixnum
private
The number of bytes written.
-
#initialize(application) ⇒ Vedeu::Distributed::Subprocess
constructor
Returns a new instance of Vedeu::Distributed::Subprocess.
-
#kill ⇒ void
Sends the KILL signal to the process.
-
#timestamp ⇒ Object
private
return [Fixnum].
Constructor Details
#initialize(application) ⇒ Vedeu::Distributed::Subprocess
Returns a new instance of Vedeu::Distributed::Subprocess.
21 22 23 24 |
# File 'lib/vedeu/distributed/subprocess.rb', line 21 def initialize(application) @application = application @pid = nil end |
Instance Attribute Details
#application ⇒ Vedeu::TestApplication (readonly, protected)
54 55 56 |
# File 'lib/vedeu/distributed/subprocess.rb', line 54 def application @application end |
#pid ⇒ Fixnum (readonly, protected)
58 59 60 |
# File 'lib/vedeu/distributed/subprocess.rb', line 58 def pid @pid end |
Class Method Details
.execute!(application) ⇒ Object
13 14 15 |
# File 'lib/vedeu/distributed/subprocess.rb', line 13 def self.execute!(application) new(application).execute! end |
Instance Method Details
#command ⇒ String (private)
63 64 65 |
# File 'lib/vedeu/distributed/subprocess.rb', line 63 def command "ruby #{file_path}" end |
#execute! ⇒ Array
:nocov:
28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/vedeu/distributed/subprocess.rb', line 28 def execute! file_open && file_write && file_close @pid = fork do exec(file_path) end Process.detach(@pid) self end |
#file_close ⇒ NilClass (private)
73 74 75 |
# File 'lib/vedeu/distributed/subprocess.rb', line 73 def file_close file.close end |
#file_name ⇒ String (private)
94 95 96 |
# File 'lib/vedeu/distributed/subprocess.rb', line 94 def file_name "/tmp/foo_#{}" end |
#file_open ⇒ File (private) Also known as: file
88 89 90 |
# File 'lib/vedeu/distributed/subprocess.rb', line 88 def file_open @file ||= File.new(file_name, 'w', 0755) end |
#file_path ⇒ Object (private)
return [String]
83 84 85 |
# File 'lib/vedeu/distributed/subprocess.rb', line 83 def file_path file.path end |
#file_unlink ⇒ Fixnum (private)
Returns The number of files removed; 1.
78 79 80 |
# File 'lib/vedeu/distributed/subprocess.rb', line 78 def file_unlink File.unlink(file_name) end |
#file_write ⇒ Fixnum (private)
Returns The number of bytes written.
68 69 70 |
# File 'lib/vedeu/distributed/subprocess.rb', line 68 def file_write file.write(application) end |
#kill ⇒ void
This method returns an undefined value.
Sends the KILL signal to the process.
44 45 46 47 48 |
# File 'lib/vedeu/distributed/subprocess.rb', line 44 def kill Process.kill('KILL', pid) file_unlink end |
#timestamp ⇒ Object (private)
return [Fixnum]
99 100 101 |
# File 'lib/vedeu/distributed/subprocess.rb', line 99 def @timestamp ||= Time.now.to_i end |