-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJobContext.java
More file actions
83 lines (63 loc) · 2.21 KB
/
Copy pathJobContext.java
File metadata and controls
83 lines (63 loc) · 2.21 KB
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package org.javawebstack.jobs;
import lombok.Getter;
import org.javawebstack.jobs.storage.model.JobEvent;
import org.javawebstack.jobs.storage.model.JobInfo;
import org.javawebstack.jobs.storage.model.JobLogEntry;
import org.javawebstack.jobs.util.JobExitException;
import java.util.Date;
import java.util.UUID;
public class JobContext {
final Jobs jobs;
final JobInfo info;
@Getter
final String queue;
final JobEvent event;
public JobContext(Jobs jobs, JobInfo info, String queue, JobEvent event) {
this.jobs = jobs;
this.info = info;
this.queue = queue;
this.event = event;
}
public UUID getId() {
return info.getId();
}
public int getMaxRetries() {
return info.getMaxRetries();
}
public int getCurrentRetry() {
return info.getRetries();
}
public void enqueue(String queue) {
jobs.enqueue(queue, info.getId());
}
public void schedule(String queue, Date at) {
jobs.schedule(queue, at, info.getId());
}
public void info(String message) {
jobs.getStorage().createLogEntry(new JobLogEntry().setLevel(LogLevel.INFO).setEventId(event.getId()).setMessage(message));
}
public void warning(String message) {
jobs.getStorage().createLogEntry(new JobLogEntry().setLevel(LogLevel.WARNING).setEventId(event.getId()).setMessage(message));
}
public void error(String message) {
jobs.getStorage().createLogEntry(new JobLogEntry().setLevel(LogLevel.ERROR).setEventId(event.getId()).setMessage(message));
}
public void fail(String message) {
throw new JobExitException(false, message, true, null);
}
public void failFinally(String message) {
throw new JobExitException(false, message, false, null);
}
public void retry(String message, int retryInSeconds) {
throw new JobExitException(false, message, true, retryInSeconds);
}
public void requeue(int requeueInSeconds) {
throw new JobExitException(true, null, true, requeueInSeconds);
}
public void complete() {
complete(null);
}
public void complete(String message) {
throw new JobExitException(true, message, false, null);
}
}