我编写了一个使用akka流和alpakka的组合的akka程序。
我有一个演员,引用了Producer.plainSink。
tcc_add_symbol(S, "N", &N);
在Actor代码中,我通过actorref将消息发送到带有生产者接收器的舞台。
ActorRef outTopicWriterActor = Source.actorRef(Integer.MAX_VALUE,OverflowStrategy.fail())
.idleTimeout(Duration.ofMinutes(time_out))
.map(eval -> Jsonizer.getMessageFromKafkaJSON(getJSON((Evaluation)eval),applicationName,instance,computerName,"_doc",((Evaluation) eval).stopTime))
.map(json -> new ProducerRecord<String,String>(outtopic,json.toJSONString()))
.to(Producer.plainSink(producerSettings))
.run(materializer);
这似乎工作正常,但过了一会儿,“阶段完成”和“生产者关闭”之后,所有消息都变成了空字母。
outTopicWriterActor.tell(output,getSelf());
如何防止“生产者阶段”“完成”并关闭生产者?