Module: Krikri::SoftwareAgent::ClassMethods
- Defined in:
- lib/krikri/software_agent.rb
Overview
Class methods for extension by ActiveSupport::Concern
Instance Method Summary collapse
-
#agent_name ⇒ Object
A string representation of this SoftwareAgent class.
-
#enqueue(*args) ⇒ Boolean
Enqueue a job.
-
#entity_behavior ⇒ Krikri::EntityBehavior
The default entity initializiation behavior for this class of SoftwareAgents.
-
#queue_name ⇒ Object
The name of the default queue for jobs invoking this SoftwareAgent.
Instance Method Details
#agent_name ⇒ Object
Returns a string representation of this SoftwareAgent class.
56 57 58 |
# File 'lib/krikri/software_agent.rb', line 56 def agent_name to_s end |
#enqueue(*args) ⇒ Boolean
Enqueue a job.
A worker process must be started to process jobs in the “harvest” queue, either before or after they are enqueued:
shell$ QUEUE=harvest bundle exec rake environment resque:work
This depends on Redis and Marmotta being available and properly configured (if necessary) in the Rails app.
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
# File 'lib/krikri/software_agent.rb', line 108 def enqueue(*args) queue = args.shift unless args.first.is_a? Hash queue ||= queue_name opts = args.shift || {} fail ArgumentError, "unexpected arguments #{args}" unless args.empty? fail ArgumentError, 'opts is not a hash' unless opts.is_a?(Hash) activity = Krikri::Activity.create do |a| a.agent = agent_name a.opts = JSON.generate(opts) end Krikri::Logger.log :info, "created activity #{activity.id}" Resque.enqueue_to(queue, Krikri::Job, activity.id) Krikri::Logger.log :info, "enqueued to #{queue}" true end |
#entity_behavior ⇒ Krikri::EntityBehavior
Returns the default entity initializiation behavior for this class of SoftwareAgents.
64 65 66 |
# File 'lib/krikri/software_agent.rb', line 64 def entity_behavior Krikri::AggregationEntityBehavior end |
#queue_name ⇒ Object
Returns the name of the default queue for jobs invoking this SoftwareAgent.
71 72 73 |
# File 'lib/krikri/software_agent.rb', line 71 def queue_name agent_name.downcase end |