Ich arbeite einen gezündeten Service, der einige Aufgaben über run
veröffentlichen wird. Der Service sieht so aus:Ist es sicher, in einem Verschluss zu zünden?
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
}
}
}
Die Frage ist, was auf einem anderen Knoten geschehen wird? Wir serialisieren die Ignite
Instanz (wirklich ??) und schickten es durch das Netzwerk. Oder wie funktioniert es?
In meinem Fall ist die Ausführung der Aufgabe kritisch ... Also würde ich gerne verstehen, wie es funktioniert, wenn die Aufgabe auf dem anderen Knoten ausgeführt wird?
Vielleicht sollte ich explizit Ignition.ignite();
verwenden?
Also ja. 'Ignition.localIgnite' wäre hilfreich. Aber was ist mit 'IgniteCache'? Ist es sicher, es von einem Verschluss zu benutzen? Ich meine, eine 'IgniteCache cache' Referenz in einem closure wenn' affinityRun' zu verwenden? –
Es ist nicht notwendig, in diesem Fall können Sie IgniteCache-Objekt von Ignite von Cache (Name) oder getOrCreateCache-Methoden –