我想知道是否有什么方法来推迟阿克卡消息的处理?
我的用例:对于我的每一个请求,我有少量的工作需要做,然后我需要在两个小时后再做额外的工作。
在AKKA中有什么简单的方法来延迟消息的处理吗?我知道我可能可以设置一个外部的分布式队列,比如ActiveMQ,RabbitMQ,它可能具有这个特性,但我不这么认为。
我知道我需要使邮箱持久,这样它才能在重新启动或崩溃时存活下来。我们已经有芒果设置,所以我可能是使用MongoBasedMailbox的耐用性。
发布于 2019-06-15 17:27:23
时态工作流能够以最小的努力支持您的用例。你可以把它看作是一个持久的演员平台。当参与者状态(包括线程和局部变量)在整个进程中被保留时,重新启动。
Temporal为任务处理提供了许多其他特性。
请参阅遍历时态编程模型的介绍。论述了时态的前身--卡丹斯。
发布于 2013-01-02 13:51:06
这并不理想,但阿克卡骆驼石英调度器可以做到这一点。比内置的ActorSystem调度程序更重要,但是知道Quartz有它自己的问题。
发布于 2015-10-15 23:24:53
您仍然可以使用普通的Akka调度程序,您只需在参与者持久性上保持一个状态,以避免在服务器重新启动时松开作业。
我最近使用了PersistentFsmActor --这将使参与者的状态保持不变。
我不确定在您的情况下,您必须使用FSM (有限状态机),所以基本上可以使用persistentActor来节省插入作业的时间,并启动调度程序到那个时间。这样即使您重新启动了服务器,参与者也会启动并创建一个新的计划作业,使用持久数据来计算运行它的剩余时间。
https://stackoverflow.com/questions/14129579
复制