タイムアウトの制御
SDKの各メソッドからBaaS@rakuzaと通信を行い、長時間応答がない場合はタイムアウトします。
デフォルトのタイムアウト時間はプラットフォームごとに異なります。
- iOS: 60秒
- Android: 300秒
- JavaScript: 30秒
タイムアウトが発生した場合、ステータスコードがタイムアウトエラー(9031
)のレスポンスが返却されます。
RKZService.sharedInstance().getSystemDate { now, responseStatus in
if responseStatus.statusCode == .connectionTimeout {
// ステータスコードがタイムアウトエラー(9031)の場合
print("タイムアウトエラー")
}
}
[[RKZService sharedInstance] getSystemDateWithBlock:^(NSDate * _Nullable now, RKZResponseStatus * _Nonnull responseStatus) {
if (responseStatus.statusCode == RKZApiStatusCodeConnectionTimeout) {
// ステータスコードがタイムアウトエラー(9031)の場合
NSLog(@"タイムアウトエラー");
}
}];
RKZClient.getInstance().getSystemDate { now, rkzResponseStatus ->
if (rkzResponseStatus.statusCode == RKZResponseStatus.ERROR_CODE_TIMEOUT) {
// ステータスコードがタイムアウトエラー(9031)の場合
Log.d(TAG, "タイムアウトエラー")
}
}
RKZClient.getInstance().getSystemDate(new OnGetSystemDateListener() {
@Override
public void onGetSystemDateListener(Calendar now, RKZResponseStatus rkzResponseStatus) {
if (rkzResponseStatus.getStatusCode().equals(RKZResponseStatus.ERROR_CODE_TIMEOUT)) {
// ステータスコードがタイムアウトエラー(9031)の場合
Log.d(TAG, "タイムアウトエラー");
}
}
});
RKZClient.getSystemDate(function (now) {
// ...
}, function (error) {
if (error.status_code === '9031') {
// ステータスコードがタイムアウトエラー(9031)の場合
console.error('タイムアウトエラー')
}
})
try {
const now = await RKZ.now()
// ...
} catch (error) {
if (error.status_code === RKZ.Status.ErrorTimeout) {
// ステータスコードがタイムアウトエラー(9031)の場合
console.error('タイムアウトエラー')
}
}
try {
final now = await RKZClient.instance.now();
// ...
} on PlatformException catch(e) {
if (e.code == RKZStatus.errorTimeout) {
// ステータスコードがタイムアウトエラー(9031)の場合
print('タイムアウトエラー');
}
}
タイムアウト時間は変更することができます。
RKZService.sharedInstance().setDefaultTimeout(10) // 秒で指定
[[RKZService sharedInstance] setDefaultTimeout:10]; // 秒で指定
RKZClient.getInstance().setDefaultTimeout(10) // 秒で指定
RKZClient.getInstance().setDefaultTimeout(10); // 秒で指定
// 秒で指定
RKZClient.setDefaultTimeout(10, function () {
// 成功時
console.debug('設定完了')
}, function (error) {
// 失敗時
console.error('status_code:', error.status_code)
console.error('message:', error.message)
})
RKZ.config.timeout = 1000 // ミリ秒で指定
await RKZClient.instance.setDefaultTimeout(10); // 秒で指定