Class: Fragmentary::RequestQueue::Sender
- Inherits:
-
Object
- Object
- Fragmentary::RequestQueue::Sender
- Defined in:
- lib/fragmentary/request_queue.rb
Defined Under Namespace
Classes: Target
Instance Attribute Summary collapse
-
#between ⇒ Object
readonly
Returns the value of attribute between.
-
#delay ⇒ Object
readonly
Returns the value of attribute delay.
-
#priority ⇒ Object
readonly
Returns the value of attribute priority.
-
#queue ⇒ Object
readonly
Returns the value of attribute queue.
-
#queue_suffix ⇒ Object
readonly
Returns the value of attribute queue_suffix.
-
#target ⇒ Object
readonly
Returns the value of attribute target.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(queue) ⇒ Sender
constructor
A new instance of Sender.
- #perform ⇒ Object
- #send_next_request ⇒ Object
- #session ⇒ Object
- #session_user ⇒ Object
-
#start(delay: nil, between: nil, queue_suffix: '', priority: 0) ⇒ Object
Send all requests, either directly or by schedule.
Constructor Details
Instance Attribute Details
#between ⇒ Object (readonly)
Returns the value of attribute between.
90 91 92 |
# File 'lib/fragmentary/request_queue.rb', line 90 def between @between end |
#delay ⇒ Object (readonly)
Returns the value of attribute delay.
90 91 92 |
# File 'lib/fragmentary/request_queue.rb', line 90 def delay @delay end |
#priority ⇒ Object (readonly)
Returns the value of attribute priority.
90 91 92 |
# File 'lib/fragmentary/request_queue.rb', line 90 def priority @priority end |
#queue ⇒ Object (readonly)
Returns the value of attribute queue.
90 91 92 |
# File 'lib/fragmentary/request_queue.rb', line 90 def queue @queue end |
#queue_suffix ⇒ Object (readonly)
Returns the value of attribute queue_suffix.
90 91 92 |
# File 'lib/fragmentary/request_queue.rb', line 90 def queue_suffix @queue_suffix end |
#target ⇒ Object (readonly)
Returns the value of attribute target.
90 91 92 |
# File 'lib/fragmentary/request_queue.rb', line 90 def target @target end |
Class Method Details
.jobs ⇒ Object
71 72 73 |
# File 'lib/fragmentary/request_queue.rb', line 71 def jobs ::Delayed::Job.where("(handler LIKE ?) OR (handler LIKE ?)", "--- !ruby/object:#{name} %", "--- !ruby/object:#{name}\n%") end |
Instance Method Details
#perform ⇒ Object
119 120 121 122 |
# File 'lib/fragmentary/request_queue.rb', line 119 def perform Rails.logger.info "\n***** Processing request queue for user_type '#{queue.user_type}'\n" @between ? send_next_request : send_all_requests end |
#send_next_request ⇒ Object
124 125 126 127 128 129 |
# File 'lib/fragmentary/request_queue.rb', line 124 def send_next_request if queue.size > 0 request = queue.next_request session.send_request(:method => request.method, :path => request.path, :parameters => request.parameters, :options => request.) end end |
#session ⇒ Object
101 102 103 |
# File 'lib/fragmentary/request_queue.rb', line 101 def session @session ||= InternalUserSession.new(@target.url, session_user) end |
#session_user ⇒ Object
97 98 99 |
# File 'lib/fragmentary/request_queue.rb', line 97 def session_user @session_user ||= Fragmentary::SessionUser.fetch(queue.user_type) end |
#start(delay: nil, between: nil, queue_suffix: '', priority: 0) ⇒ Object
Send all requests, either directly or by schedule
106 107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/fragmentary/request_queue.rb', line 106 def start(delay: nil, between: nil, queue_suffix: '', priority: 0) Rails.logger.info "\n***** Processing request queue for user_type '#{queue.user_type}'\n" @delay = delay; @between = between; @queue_suffix = queue_suffix; @priority = priority if @delay or @between schedule_requests(@delay) # sending requests by schedule makes a copy of the sender and queue objects for # asynchronous execution, so we have to manually clear out the original queue. queue.clear else send_all_requests end end |