Java 在使用带有检查点的PROCESS_时,数据会被切断,有没有办法防止这种情况发生?

Java 在使用带有检查点的PROCESS_时,数据会被切断,有没有办法防止这种情况发生?,java,apache-flink,Java,Apache Flink,假设我正在读取一组有限的文件,因此我选择使用FileProcessingMode.PROCESS\u ONCE,它将在处理所有文件时退出作业。但是有一个问题,如果作业在检查点完成之前完成,那么那里的任何数据都不会到达目的地。例如,假设我有1分钟的检查点增量,处理所有文件需要1分钟30秒。最后30秒的数据将不在S3中(假设您使用的是db) DataStreamSource msgOutStream=environment.readFile(avroInputFormat,msgOutPath,Fi

假设我正在读取一组有限的文件,因此我选择使用
FileProcessingMode.PROCESS\u ONCE
,它将在处理所有文件时退出作业。但是有一个问题,如果作业在检查点完成之前完成,那么那里的任何数据都不会到达目的地。例如,假设我有1分钟的检查点增量,处理所有文件需要1分钟30秒。最后30秒的数据将不在S3中(假设您使用的是db)

DataStreamSource msgOutStream=environment.readFile(avroInputFormat,msgOutPath,FileProcessingMode.PROCESS_ONCE,1000L);
有没有办法在作业被终止之前强制设置检查点

我可以禁用检查点吗?我尝试注释我的检查点配置设置,如
//StreamExecutionEnvironment.enableCheckpoint()
,希望它能直接写入数据库,但数据文件被卡在.inprogress中,我不明白是什么阻止了它

是否有一种方法可以连续使用
PROCESS\u
在不再处理任何内容时结束它


我使用的是flink 1.8。

请在此处签出Avro的StreamingFileSink:
DataStreamSource<Message> msgOutStream = environment.readFile(avroInputFormat, msgOutPath, FileProcessingMode.PROCESS_ONCE, 1000L);