forked from collectiveidea/delayed_job
-
Notifications
You must be signed in to change notification settings - Fork 3
/
sample_jobs.rb
69 lines (55 loc) · 1.19 KB
/
sample_jobs.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
class NamedJob < Struct.new(:perform)
def display_name
'named_job'
end
end
class SimpleJob
cattr_accessor :runs; self.runs = 0
def perform; @@runs += 1; end
end
class ErrorJob
cattr_accessor :runs; self.runs = 0
def perform; raise 'did not work'; end
end
class CustomRescheduleJob < Struct.new(:offset)
cattr_accessor :runs; self.runs = 0
def perform; raise 'did not work'; end
def reschedule_at(time, attempts); time + offset; end
end
class LongRunningJob
def perform; sleep 250; end
end
class OnPermanentFailureJob < SimpleJob
def failure; end
def max_attempts; 1; end
end
module M
class ModuleJob
cattr_accessor :runs; self.runs = 0
def perform; @@runs += 1; end
end
end
class CallbackJob
cattr_accessor :messages
def enqueue(job)
self.class.messages << 'enqueue'
end
def before(job)
self.class.messages << 'before'
end
def perform
self.class.messages << 'perform'
end
def after(job)
self.class.messages << 'after'
end
def success(job)
self.class.messages << 'success'
end
def error(job, error)
self.class.messages << "error: #{error.class}"
end
def failure(job)
self.class.messages << 'failure'
end
end