Class: QBWC::Job
- Inherits:
-
Object
- Object
- QBWC::Job
- Defined in:
- lib/qbwc/job.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#company ⇒ Object
readonly
Returns the value of attribute company.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#worker_class ⇒ Object
readonly
Returns the value of attribute worker_class.
Instance Method Summary collapse
- #advance_next_request ⇒ Object
- #data ⇒ Object
- #data=(d) ⇒ Object
- #disable ⇒ Object
- #enable ⇒ Object
- #enabled? ⇒ Boolean
-
#initialize(name, enabled, company, worker_class, requests = [], data = nil) ⇒ Job
constructor
A new instance of Job.
- #next_request ⇒ Object (also: #next)
- #pending? ⇒ Boolean
- #process_response(qbxml_response, response, session, advance) ⇒ Object
- #request_index ⇒ Object
- #request_index=(ri) ⇒ Object
- #requests ⇒ Object
- #requests=(r) ⇒ Object
- #requests_provided_when_job_added ⇒ Object
- #requests_provided_when_job_added=(value) ⇒ Object
- #reset ⇒ Object
- #worker ⇒ Object
Constructor Details
#initialize(name, enabled, company, worker_class, requests = [], data = nil) ⇒ Job
Returns a new instance of Job.
5 6 7 8 9 10 11 12 13 |
# File 'lib/qbwc/job.rb', line 5 def initialize(name, enabled, company, worker_class, requests = [], data = nil) @name = name @enabled = enabled @company = company || QBWC.company_file_path @worker_class = worker_class @requests = requests @data = data @request_index = 0 end |
Instance Attribute Details
#company ⇒ Object (readonly)
Returns the value of attribute company.
3 4 5 |
# File 'lib/qbwc/job.rb', line 3 def company @company end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
3 4 5 |
# File 'lib/qbwc/job.rb', line 3 def name @name end |
#worker_class ⇒ Object (readonly)
Returns the value of attribute worker_class.
3 4 5 |
# File 'lib/qbwc/job.rb', line 3 def worker_class @worker_class end |
Instance Method Details
#advance_next_request ⇒ Object
27 28 29 30 31 |
# File 'lib/qbwc/job.rb', line 27 def advance_next_request new_index = request_index + 1 QBWC.logger.info "Job '#{name}' advancing to request #'#{new_index}'." self.request_index = new_index end |
#data ⇒ Object
63 64 65 |
# File 'lib/qbwc/job.rb', line 63 def data @data end |
#data=(d) ⇒ Object
67 68 69 |
# File 'lib/qbwc/job.rb', line 67 def data=(d) @data = d end |
#disable ⇒ Object
37 38 39 |
# File 'lib/qbwc/job.rb', line 37 def disable self.enabled = false end |
#enable ⇒ Object
33 34 35 |
# File 'lib/qbwc/job.rb', line 33 def enable self.enabled = true end |
#enabled? ⇒ Boolean
51 52 53 |
# File 'lib/qbwc/job.rb', line 51 def enabled? @enabled end |
#next_request ⇒ Object Also known as: next
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/qbwc/job.rb', line 87 def next_request # Generate and save the requests to run when starting the job. if (requests.nil? || requests.empty?) && ! self.requests_provided_when_job_added r = worker.requests(self) r = [r] unless r.nil? || r.is_a?(Array) self.requests = r end QBWC.logger.info("Requests available are '#{requests}'.") if QBWC.log_requests_and_responses ri = request_index QBWC.logger.info("Request index is '#{ri}'.") return nil if ri.nil? || requests.nil? || ri >= requests.length nr = requests[ri] QBWC.logger.info("Next request is '#{nr}'.") if QBWC.log_requests_and_responses return QBWC::Request.new(nr) end |
#pending? ⇒ Boolean
41 42 43 44 45 46 47 48 49 |
# File 'lib/qbwc/job.rb', line 41 def pending? if !enabled? QBWC.logger.info "Job '#{name}' not enabled." return false end sr = worker.should_run?(self) QBWC.logger.info "Job '#{name}' should_run?: #{sr}." return sr end |
#process_response(qbxml_response, response, session, advance) ⇒ Object
19 20 21 22 23 24 25 |
# File 'lib/qbwc/job.rb', line 19 def process_response(qbxml_response, response, session, advance) QBWC.logger.info "Processing response." completed_request = requests[request_index] advance_next_request if advance QBWC.logger.info "Job '#{name}' received response: '#{qbxml_response}'." if QBWC.log_requests_and_responses worker.handle_response(response, session, self, completed_request, data) end |
#request_index ⇒ Object
71 72 73 |
# File 'lib/qbwc/job.rb', line 71 def request_index @request_index end |
#request_index=(ri) ⇒ Object
75 76 77 |
# File 'lib/qbwc/job.rb', line 75 def request_index=(ri) @request_index = ri end |
#requests ⇒ Object
55 56 57 |
# File 'lib/qbwc/job.rb', line 55 def requests @requests end |
#requests=(r) ⇒ Object
59 60 61 |
# File 'lib/qbwc/job.rb', line 59 def requests=(r) @requests = r end |
#requests_provided_when_job_added ⇒ Object
79 80 81 |
# File 'lib/qbwc/job.rb', line 79 def requests_provided_when_job_added @requests_provided_when_job_added end |
#requests_provided_when_job_added=(value) ⇒ Object
83 84 85 |
# File 'lib/qbwc/job.rb', line 83 def requests_provided_when_job_added=(value) @requests_provided_when_job_added = value end |
#reset ⇒ Object
105 106 107 108 |
# File 'lib/qbwc/job.rb', line 105 def reset self.request_index = 0 self.requests = [] unless self.requests_provided_when_job_added end |
#worker ⇒ Object
15 16 17 |
# File 'lib/qbwc/job.rb', line 15 def worker worker_class.constantize.new end |