OperationTimedOutException
キースペースをドロップしているときにカサンドラを取得しています。cassandra からオブジェクトを取得するまで、ブロックするために60000 ミリ秒 (1 分) を与えましたが。でも1分も待たずにすぐに投げます。timeOut
Future
executeAsync
timeoutexception
これは、Javaを使用してキースペースを削除する方法です-
List<KeyspaceMetadata> keyspaceMetadataList = cluster.getMetadata().getKeyspaces();
for(KeyspaceMetadata ks: keyspaceMetadataList)
{
if (ks.getName().startsWith("system"))
{
continue;
}
try
{
session.executeAsync("drop keyspace " + ks.getName()).get(1000 * 60, TimeUnit.MILLISECONDS);
log.info("Dropped Keyspace: " + ks.getName());
}
catch( InterruptedException | ExecutionException | TimeoutException e )
{
log.error("Something went wrong: " + e);
}
}
以下の行では、少なくとも 60 秒待機するように強制的に呼び出しを指示していますが、その前にTimeOutException
.
session.executeAsync("drop keyspace " + ks.getName()).get(1000 * 60, TimeUnit.MILLISECONDS);
これがプログラムでタイムアウトを増やす正しい方法かどうかはわかりません。他に良い方法があれば教えてください。