首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AKKA.NET -排队和重试

AKKA.NET -排队和重试
EN

Stack Overflow用户
提问于 2016-12-27 16:58:58
回答 1查看 351关注 0票数 1

作为将我们的应用程序从巨大的单体转变为麦克风的一部分,我们正在开发一个通知微服务,它可以被所有其他模块用来发送通知,比如电子邮件、短信、推送通知等等。

此通知服务的一个客户端是我们计划开发的windows服务,它为用户注册、密码重置等各种事件触发电子邮件通知。windows服务将包含两个部分。

  1. 一个基于REST的API,可以由诸如用户注册之类的模块调用来触发通知。当调用ReST API时,该服务将加载适当的模板,填写必要的值,并调用通知服务发送电子邮件。如果api调用失败,通知的详细信息将发送给后台任务,该任务将在放弃并引发错误之前重试该操作一次固定次数。
  2. 后台任务,它将在放弃并引发错误之前重试该操作一定次数的发送通知。

我们最初的计划是使用队列在这两个部分之间进行通信。水流会是这样的

Client -> ReST API ->加载模板和填充值-> Call notification ->将消息添加到队列中(如果通知失败)->后台任务提取队列的消息-->重试操作-->将通知标记为失败,以防最大重试失败(将手动处理)。

与使用队列不同,另一种方法是使用持久的AKKA.NET参与者来执行此操作,因为AKKA.NET支持邮箱,但没有找到任何类似的用例.如果我们选择akka.net,我们在正确的道路上.请发送您的评论

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-28 12:48:34

我认为队列是对此的适当抽象--将一些消息发布到队列并让通知服务使用它们。如果通知服务已关闭,则它们将一直停留在队列中,直到它恢复为止。像Kafka这样的东西可能很适合这一点,但是您可能可以在当前使用的任何数据库中实现一些东西。除非你对事情有更复杂的逻辑,否则我可能不会沿着演员路线走下去。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41349135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档