現在、CassandraをNoSQLデータベースとして使用し、GemFireをIn Memoryデータベースとして使用しています。私たちはGemFire CacheWriterを使ってCassandraにレコードを挿入しています。 CacheWriter内のConcurrentスレッドを使用してレコードを挿入/更新することは、エンジニアリングの慣行であるかどうかについてのご意見をお待ちしています。これに関するあなたのご意見は高く評価されます。GemFire CacheWriterの同時スレッド
public class GenericWriter<K, V> extends CacheWriterAdapter<K, V> implements Declarable {
private static Logger log = LoggerFactory.getLogger(GenericWriter.class);
@Autowired
private CassandraOperations cassandraOperations;
ExecutorService executor = null;
@Override
public void beforeCreate(EntryEvent<K, V> e) {
executor = Executors.newSingleThreadExecutor();
executor.submit(() -> {
if (eventOperation.equals("CREATE") || eventOperation.equalsIgnoreCase("PUTALL_CREATE")) {
try {
cassandraOperations.insert(e.getNewValue());
} catch (CassandraConnectionFailureException | CassandraWriteTimeoutException
| CassandraInternalException cassException) {
} catch (Exception ex) {
log.error("Exception in GenericCacheWriter->" + ExceptionUtils.getStackTrace(ex));
throw ex;
}
}
});
executor.shutdown();
}
@Override
public void init(Properties arg0) {
// TODO Auto-generated method stub
}
}
両方の答えが正しいです。誰も私に両方を受け入れる方法を教えてもらえますか – Vigneshwaran