63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
# File 'app/models/process/naf/runner.rb', line 63
def work
check_gc_configurations
@machine = ::Naf::Machine.find_by_server_address(@server_address)
@metric_sender = ::Logical::Naf::MetricSender.new(@metric_send_delay, @machine)
unless machine.present?
logger.fatal "This machine is not configued correctly (ipaddress: #{@server_address})."
logger.fatal "Please update #{::Naf::Machine.table_name} with an entry for this machine."
logger.fatal "Exiting..."
exit 1
end
machine.lock_for_runner_use do
cleanup_old_processes
remove_invalid_running_jobs
wind_down_runners
machine_runner = ::Naf::MachineRunner.
find_or_create_by_machine_id_and_runner_cwd(machine_id: machine.id,
runner_cwd: Dir.pwd)
@current_invocation = ::Naf::MachineRunnerInvocation.
create!({ machine_runner_id: machine_runner.id,
pid: Process.pid,
uuid: @invocation_uuid }.merge!(retrieve_invocation_information))
end
begin
work_machine
ensure
@current_invocation.dead_at = Time.zone.now
@current_invocation.save!
cleanup_old_processes
end
end
|