def process( transport, workitem )
@instance ||= new
work = parse( workitem )
return if work.nil?
DaemonKit.logger.warn "Processing workitem that has timed out!" if work.timed_out?
target, method = parse_command( work )
if target.nil? || method.nil?
msg = "Missing target/method in command parameter, or command parameter missing"
DaemonKit.logger.error( msg )
work["daemon_kit"] = { "error" => msg }
elsif target.public_methods.include?( method )
target.perform( method, work )
else
msg = "Workitem cannot be processes: #{method} not exposed by #{target.inspect}"
DaemonKit.logger.error( msg )
work["daemon_kit"] = { "error" => msg }
end
reply_to_engine( transport, work )
end