Class: QBWC::ActiveRecord::Job
- Inherits:
-
Job
- Object
- Job
- QBWC::ActiveRecord::Job
show all
- Defined in:
- lib/qbwc/active_record/job.rb
Defined Under Namespace
Classes: QbwcJob
Instance Attribute Summary
Attributes inherited from Job
#company, #name, #worker_class
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Job
#disable, #enable, #initialize, #next_request, #pending?, #process_response, #requests=, #worker
Constructor Details
This class inherits a constructor from QBWC::Job
Class Method Details
.add_job(name, enabled, company, worker_class, requests, data) ⇒ Object
Creates and persists a job.
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/qbwc/active_record/job.rb', line 15
def self.add_job(name, enabled, company, worker_class, requests, data)
worker_class = worker_class.to_s
ar_job = find_ar_job_with_name(name).first_or_initialize
ar_job.company = company
ar_job.enabled = enabled
ar_job.worker_class = worker_class
ar_job.save!
jb = self.new(name, enabled, company, worker_class, requests, data)
unless requests.nil? || requests.empty?
request_hash = { [nil, company] => [requests].flatten }
jb.requests = request_hash
ar_job.update_attribute :requests, request_hash
end
jb.requests_provided_when_job_added = (! requests.nil? && ! requests.empty?)
jb.data = data
jb
end
|
.clear_jobs ⇒ Object
117
118
119
|
# File 'lib/qbwc/active_record/job.rb', line 117
def self.clear_jobs
QbwcJob.delete_all
end
|
.delete_job_with_name(name) ⇒ Object
49
50
51
52
|
# File 'lib/qbwc/active_record/job.rb', line 49
def self.delete_job_with_name(name)
j = find_ar_job_with_name(name).first
j.destroy unless j.nil?
end
|
.find_ar_job_with_name(name) ⇒ Object
41
42
43
|
# File 'lib/qbwc/active_record/job.rb', line 41
def self.find_ar_job_with_name(name)
QbwcJob.where(:name => name)
end
|
.find_job_with_name(name) ⇒ Object
35
36
37
38
39
|
# File 'lib/qbwc/active_record/job.rb', line 35
def self.find_job_with_name(name)
j = find_ar_job_with_name(name).first
j = j.to_qbwc_job unless j.nil?
return j
end
|
.list_jobs ⇒ Object
113
114
115
|
# File 'lib/qbwc/active_record/job.rb', line 113
def self.list_jobs
QbwcJob.all.map {|ar_job| ar_job.to_qbwc_job}
end
|
.sort_in_time_order(ary) ⇒ Object
121
122
123
|
# File 'lib/qbwc/active_record/job.rb', line 121
def self.sort_in_time_order(ary)
ary.sort {|a,b| a.find_ar_job.first.created_at <=> b.find_ar_job.first.created_at}
end
|
Instance Method Details
#advance_next_request(session) ⇒ Object
101
102
103
104
|
# File 'lib/qbwc/active_record/job.rb', line 101
def advance_next_request(session)
nr = request_index(session)
set_request_index session, nr + 1
end
|
#data ⇒ Object
81
82
83
|
# File 'lib/qbwc/active_record/job.rb', line 81
def data
find_ar_job.pluck(:data).first
end
|
#data=(r) ⇒ Object
85
86
87
88
|
# File 'lib/qbwc/active_record/job.rb', line 85
def data=(r)
find_ar_job.update_all(:data => r)
super
end
|
#enabled=(value) ⇒ Object
54
55
56
|
# File 'lib/qbwc/active_record/job.rb', line 54
def enabled=(value)
find_ar_job.update_all(:enabled => value)
end
|
#enabled? ⇒ Boolean
58
59
60
|
# File 'lib/qbwc/active_record/job.rb', line 58
def enabled?
find_ar_job.where(:enabled => true).exists?
end
|
#find_ar_job ⇒ Object
45
46
47
|
# File 'lib/qbwc/active_record/job.rb', line 45
def find_ar_job
self.class.find_ar_job_with_name(name)
end
|
#request_index(session) ⇒ Object
90
91
92
|
# File 'lib/qbwc/active_record/job.rb', line 90
def request_index(session)
(find_ar_job.pluck(:request_index).first || {})[session.key] || 0
end
|
#requests(session = QBWC::Session.get) ⇒ Object
62
63
64
65
|
# File 'lib/qbwc/active_record/job.rb', line 62
def requests(session = QBWC::Session.get)
@requests = find_ar_job.pluck(:requests).first
super
end
|
#requests_provided_when_job_added ⇒ Object
72
73
74
|
# File 'lib/qbwc/active_record/job.rb', line 72
def requests_provided_when_job_added
find_ar_job.pluck(:requests_provided_when_job_added).first
end
|
#requests_provided_when_job_added=(value) ⇒ Object
76
77
78
79
|
# File 'lib/qbwc/active_record/job.rb', line 76
def requests_provided_when_job_added=(value)
find_ar_job.update_all(:requests_provided_when_job_added => value)
super
end
|
#reset ⇒ Object
106
107
108
109
110
111
|
# File 'lib/qbwc/active_record/job.rb', line 106
def reset
super
job = find_ar_job
job.update_all :request_index => {}
job.update_all(:requests => {}) unless self.requests_provided_when_job_added
end
|
#set_request_index(session, index) ⇒ Object
94
95
96
97
98
99
|
# File 'lib/qbwc/active_record/job.rb', line 94
def set_request_index(session, index)
find_ar_job.each do |jb|
jb.request_index[session.key] = index
jb.save
end
end
|
#set_requests(session, requests) ⇒ Object
67
68
69
70
|
# File 'lib/qbwc/active_record/job.rb', line 67
def set_requests(session, requests)
super
find_ar_job.update_all(:requests => @requests)
end
|