Код: Выделить всё
IgniteDataStreamer streamer = ignite.dataStreamer(cacheName);
streamer.keepBinary(true);
streamer.receiver(new MyReceiver());
Код: Выделить всё
public class MyReceiver implements StreamReceiver {
@Override
void receive(IgniteCache cache,
Collection entries) {
//
}
}
Код: Выделить всё
void receive(IgniteCache cache,
Collection entries) {
entries.forEach(entry -> {
// Notice I can't do "MyPojoEntity en = entry.getValue()" - that would throw ClassCastException
BinaryObject binaryEntity = (BinaryObject)entry.getValue();
// Notice unchecked cast to raw IgniteCache - can't compile it otherwise!
((IgniteCache)cache).put(key, binaryEntity);
});
}
Конечно, более простой и безопасный обходной путь, вероятно, заключается в том, чтобы MyReceiver реализовывал StreamReceiver , а затем используйте необработанный тип IgniteDataStreamer:
Код: Выделить всё
// ...
((IgniteDataStreamer)streamer).receiver(new MyReceiver()); // Cast to raw IgniteDataStreamer
// ... and where MyReceiver now implements StreamReceiver
Подробнее здесь: https://stackoverflow.com/questions/784 ... eric-types