我正在通過run
發佈一些點火服務。該服務如下所示:在封閉內使用點火是否安全?
public interface MySvc{
public void foSomeJob();
}
public MySvcImpl implements MySvc, Service{
@IgniteInstanceResource
private Ignite ignite;
public void foSomeJob(){
IgniteCompute compute = ignite.compute();
compute.run(() -> {
ignite.binary() //<----Is it safe?
.builder("TYPE"); // What is gonna happen on another node
//build binary object and put it into a cache
}
}
}
問題是在另一個節點上會發生什麼?我們序列化Ignite
實例(真正的??)並通過網絡發送它。或者它是如何工作的?
在我的情況下,任務的執行是至關重要的......所以我想知道在另一個節點上運行任務時它是如何工作的?
也許我應該明確使用Ignition.ignite();
?
所以,是的。 'Ignition.localIgnite'會有幫助。但是'IgniteCache'呢?從封閉使用它是否安全?我的意思是在'affinityRun'時在閉包內使用'IgniteCache cache'引用? –
在這種情況下,您不需要通過緩存(名稱)或getOrCreateCache方法從Ignite中獲取IgniteCache對象 –