【发布时间】:2017-08-24 21:37:59
【问题描述】:
我们目前将 Cassandra 用作 NoSQL 数据库,将 GemFire 用作内存数据库。我们一直在使用 GemFire CacheWriter 在 Cassandra 中插入记录。我希望您能就在 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
}
}
【问题讨论】:
-
两个答案都是正确的。谁能告诉我如何同时接受这两种方法
标签: gemfire spring-data-gemfire