Class: ScraperUtils::Scheduler::ThreadRequest
- Inherits:
-
Object
- Object
- ScraperUtils::Scheduler::ThreadRequest
- Defined in:
- lib/scraper_utils/scheduler/thread_request.rb
Overview
Encapsulates a request that pushed to the fiber’s request queue to be executed by the Fiber’s Thread The response is returned via the Scheduler’s response queue
Direct Known Subclasses
Instance Attribute Summary collapse
-
#authority ⇒ Symbol
readonly
Authority for correlating requests and responses.
Instance Method Summary collapse
-
#execute ⇒ Object
Execute a request and return ThreadResponse - use helper method ‘.execute_block`.
-
#execute_block ⇒ ThreadResponse
Execute a request by calling the block.
-
#initialize(authority) ⇒ ThreadRequest
constructor
Initialize a new process request.
Constructor Details
#initialize(authority) ⇒ ThreadRequest
Initialize a new process request
17 18 19 |
# File 'lib/scraper_utils/scheduler/thread_request.rb', line 17 def initialize() @authority = end |
Instance Attribute Details
#authority ⇒ Symbol (readonly)
Returns Authority for correlating requests and responses.
12 13 14 |
# File 'lib/scraper_utils/scheduler/thread_request.rb', line 12 def @authority end |
Instance Method Details
#execute ⇒ Object
Execute a request and return ThreadResponse - use helper method ‘.execute_block`
22 23 24 |
# File 'lib/scraper_utils/scheduler/thread_request.rb', line 22 def execute raise NotImplementedError, "Implement in subclass" end |
#execute_block ⇒ ThreadResponse
Execute a request by calling the block
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/scraper_utils/scheduler/thread_request.rb', line 28 def execute_block start_time = Time.now begin result = yield elapsed_time = Time.now - start_time ThreadResponse.new( , result, nil, elapsed_time ) rescue => e elapsed_time = Time.now - start_time ThreadResponse.new( , nil, e, elapsed_time ) end end |