Java job의 최대 실행 시간
외부 서비스 호출이 응답하지 않거나 작업이 지나치게 오래 실행되는 것을 제한하려면 계산 함수에 @MaxAllowedDuration을 설정합니다. 값은 PT2H 같은 ISO 8601 duration 문자열입니다.
다음은 최대 2시간을 설정한 저수준 변환입니다. 가상 경로를 실제 자산으로 바꾸고 입력에 eye 열이 있는지 확인합니다.
package myproject.datasets;
import com.palantir.transforms.lang.java.api.Compute;
import com.palantir.transforms.lang.java.api.FoundryInput;
import com.palantir.transforms.lang.java.api.FoundryOutput;
import com.palantir.transforms.lang.java.api.Input;
import com.palantir.transforms.lang.java.api.MaxAllowedDuration;
import com.palantir.transforms.lang.java.api.Output;
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
public final class FilterTransform {
@MaxAllowedDuration(value = "PT2H")
@Compute
public void compute(
@Input("/Example Project/Inputs/students_hair_eye_color")
FoundryInput input,
@Output("/Example Project/Outputs/brown_eyes")
FoundryOutput output) {
Dataset<Row> rows = input.asDataFrame().read();
output.getDataFrameWriter(rows.filter("eye = 'Brown'")).write();
}
}
이 클래스를 자동 등록하는 패키지에 두고 PipelineDefiner에 연결합니다.
실행 기간은 5분마다 확인합니다. 따라서 PT3M은 5분 시점, PT7M은 10분 시점에 취소하는 방식입니다. 설정한 초에 즉시 중단되는 타이머로 해석하지 않습니다.