Class: Stackify::Worker
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(name = nil) ⇒ Worker
Returns a new instance of Worker.
8
9
10
11
12
13
14
|
# File 'lib/stackify/workers/worker.rb', line 8
def initialize name = nil
@type = :common
@name = name ? name : generate_name
@name += " ##{self.id}"
@scheduler = Stackify::Scheduler.new
Stackify.add_dependant_worker self
end
|
Instance Attribute Details
Returns the value of attribute name.
6
7
8
|
# File 'lib/stackify/workers/worker.rb', line 6
def name
@name
end
|
Returns the value of attribute type.
6
7
8
|
# File 'lib/stackify/workers/worker.rb', line 6
def type
@type
end
|
Instance Method Details
#alive? ⇒ Boolean
42
43
44
|
# File 'lib/stackify/workers/worker.rb', line 42
def alive?
@worker_thread.try(:alive?)
end
|
16
17
18
|
# File 'lib/stackify/workers/worker.rb', line 16
def async_perform period=ScheduleDelay.new, task
run_scheduler task, period
end
|
#backtrace ⇒ Object
38
39
40
|
# File 'lib/stackify/workers/worker.rb', line 38
def backtrace
@worker_thread.try(:backtrace)
end
|
46
47
48
|
# File 'lib/stackify/workers/worker.rb', line 46
def id
object_id
end
|
20
21
22
|
# File 'lib/stackify/workers/worker.rb', line 20
def perform period=ScheduleDelay.new, task
run_scheduler task, period, true
end
|
#shutdown! ⇒ Object
24
25
26
27
28
29
30
31
32
|
# File 'lib/stackify/workers/worker.rb', line 24
def shutdown!
Stackify.delete_worker self
if @worker_thread
Stackify.internal_log :debug, "Thread with name \"#{@name}\" is terminated!"
Thread.kill @worker_thread
else
Stackify.internal_log :warn, "Thread with name \"#{@name}\" is terminated with exception!"
end
end
|
34
35
36
|
# File 'lib/stackify/workers/worker.rb', line 34
def status
@worker_thread.try(:status)
end
|