Topik ini menjelaskan cara menggunakan MaxCompute SDK for Java untuk mengembalikan log kesalahan.
Deskripsi
MaxCompute SDK for Java menyediakan kelas abstrak RetryLogger. Untuk informasi lebih lanjut, lihat Dokumentasi Java SDK.
public static abstract class RetryLogger {
/**
* Fungsi callback yang memungkinkan RestClient mencoba lagi setelah terjadi kesalahan.
* @param e
* Kesalahan yang terjadi.
* @param retryCount
* Jumlah percobaan ulang.
* @param retrySleepTime
* Interval waktu antar percobaan ulang.
*/
public abstract void onRetryLog(Throwable e, long retryCount, long retrySleepTime);
}Anda dapat membuat subclass dari RetryLogger dan menggunakan odps.getRestClient().setRetryLogger(new UserRetryLogger()); untuk mengembalikan log saat sistem menginisialisasi objek MaxCompute.
Contoh
// inisialisasi odps
odps.getRestClient().setRetryLogger(new UserRetryLogger());
// logger percobaan ulang Anda
public class UserRetryLogger extends RetryLogger {
@Override
public void onRetryLog(Throwable e, long retryCount, long sleepTime) {
if (e != null && e instanceof OdpsException) {
String requestId = ((OdpsException) e).getRequestId();
if (requestId != null) {
System.err.println(String.format(
"Peringatan: Permintaan ODPS gagal, requestID:%s, retryCount:%d, akan mencoba lagi dalam %d detik.", requestId, retryCount, sleepTime));
return;
}
}
System.err.println(String.format(
"Peringatan: Permintaan ODPS gagal:%s, retryCount:%d, akan mencoba lagi dalam %d detik.", e.getMessage(), retryCount, sleepTime));
}
}