1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.shardingsphere.data.pipeline.core.job.type;
19
20 import com.fasterxml.jackson.annotation.JsonIgnoreType;
21 import org.apache.shardingsphere.data.pipeline.core.consistencycheck.ConsistencyCheckJobItemProgressContext;
22 import org.apache.shardingsphere.data.pipeline.core.consistencycheck.PipelineDataConsistencyChecker;
23 import org.apache.shardingsphere.data.pipeline.core.context.TransmissionProcessContext;
24 import org.apache.shardingsphere.data.pipeline.core.job.PipelineJob;
25 import org.apache.shardingsphere.data.pipeline.core.job.config.PipelineJobConfiguration;
26 import org.apache.shardingsphere.data.pipeline.core.job.config.yaml.swapper.YamlPipelineJobConfigurationSwapper;
27 import org.apache.shardingsphere.data.pipeline.core.job.progress.PipelineJobItemProgress;
28 import org.apache.shardingsphere.data.pipeline.core.job.progress.yaml.config.YamlPipelineJobItemProgressConfiguration;
29 import org.apache.shardingsphere.data.pipeline.core.job.progress.yaml.swapper.YamlPipelineJobItemProgressSwapper;
30 import org.apache.shardingsphere.data.pipeline.core.pojo.PipelineJobInfo;
31 import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
32 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPI;
33 import org.apache.shardingsphere.infra.util.yaml.YamlConfiguration;
34
35 import java.util.Optional;
36
37
38
39
40 @SingletonSPI
41 @JsonIgnoreType
42 public interface PipelineJobType extends TypedSPI {
43
44
45
46
47
48
49 String getCode();
50
51
52
53
54
55
56
57
58 <Y extends YamlConfiguration, T extends PipelineJobConfiguration> YamlPipelineJobConfigurationSwapper<Y, T> getYamlJobConfigurationSwapper();
59
60
61
62
63
64
65
66 <T extends PipelineJobItemProgress> YamlPipelineJobItemProgressSwapper<YamlPipelineJobItemProgressConfiguration, T> getYamlJobItemProgressSwapper();
67
68
69
70
71
72
73 Class<? extends PipelineJob> getJobClass();
74
75
76
77
78
79
80 default boolean isIgnoreToStartDisabledJobWhenJobItemProgressIsFinished() {
81 return false;
82 }
83
84
85
86
87
88
89 default Optional<String> getToBeStartDisabledNextJobType() {
90 return Optional.empty();
91 }
92
93
94
95
96
97
98 default Optional<String> getToBeStoppedPreviousJobType() {
99 return Optional.empty();
100 }
101
102
103
104
105
106
107 default boolean isForceNoShardingWhenConvertToJobConfigurationPOJO() {
108 return false;
109 }
110
111
112
113
114
115
116
117 PipelineJobInfo getJobInfo(String jobId);
118
119
120
121
122
123
124
125
126
127 PipelineDataConsistencyChecker buildDataConsistencyChecker(PipelineJobConfiguration jobConfig, TransmissionProcessContext processContext, ConsistencyCheckJobItemProgressContext progressContext);
128
129 @Override
130 String getType();
131 }