Witam uczę się ostatnio akka actor.
Próbuje dodać obiekty do kolejki w aktorze (dane pochodzą z innego aktora a te z kolei pochodzą z listenera) przy dodawaniu do kolejki dzieje się taka rzecz że kolejka sie zapełnie jednak tymi samymi danymi np.
[1]
[2,2]
[3,3,3] itd.
co może być problemem?
poniżej aktor w którym to robie
package service.actors.xtb;
import akka.actor.typed.Behavior;
import akka.actor.typed.javadsl.AbstractBehavior;
import akka.actor.typed.javadsl.ActorContext;
import akka.actor.typed.javadsl.Behaviors;
import akka.actor.typed.javadsl.Receive;
import model.Candle;
import model.Tick;
import java.util.Deque;
import java.util.concurrent.LinkedBlockingDeque;
public class CandleActor extends AbstractBehavior<Tick> {
private final Deque<Tick> tickDeque;
private final Candle candle;
static Behavior<Tick> create() {
return Behaviors.setup(CandleActor::new);
}
public CandleActor(ActorContext<Tick> context) {
super(context);
tickDeque = new LinkedBlockingDeque<>();
candle = new Candle();
context.getLog().info("candle actor started");
}
@Override
public Receive<Tick> createReceive() {
return newReceiveBuilder()
.onMessage(Tick.class, this::toCandleHandler).build();
}
private Behavior<Tick> toCandleHandler(Tick tick) {
tickDeque.addLast(tick);
getContext().getLog().info("First -> " + tickDeque.getFirst().getBid() + " | " + " First -> " + tickDeque.getFirst().getBid());
return this;
}
}