algorithm - 为我的非 HTTP 业务逻辑实现中间件设计是个好主意吗?
问题描述
我们大多数人现在已经习惯了最近实现的 HTTP 中间件,从 node.js 生态系统开始。我们还有一些业务逻辑(在应用程序扩展的单独业务逻辑库中)可以非常分层。这更像是一个操作队列(代码中的服务),它响应给整个组件的外部消息,FILO样式。
伪代码会这样写:
inviteFriendsOperation = createFIFOQueue(message)
inviteFriendsOperation.add(PrepareFriendsList)
inviteFriendsOperation.add(RemoveFamily)
inviteFriendsOperation.add(SendMobilePush { delete successfully pushed friends from message.friendList })
inviteFriendsOperation.add(SendWebPush { delete successfully pushed friends from message.friendList })
inviteFriendsOperation.add(SendEmail { here, message.friendList only contains those who failed for mobile and web push})
updatedMessage = inviteFriendsOperation.run()
print updatedMessage.successfulMobilePushes
print updatedMessage.successfulWebPushes
print updatedMessage.successfulEmails
print updatedMessage.friendList
因此,我们将创建一个对象队列,这些对象执行message
发送到队列的操作和更新。它以 的顺序开始运行add
,到达SendEmail
,然后返回到结束于 的第一个操作PrepareFriendsList
。它最终返回更新message
的作为整个操作的结果。
message
将有一个强大的应用界面,因此误解将被最小化。
除了 HTTP 中间件,我还没有看到这种模式经常应用,当我研究时,我发现了系统架构模式的结果,而不是代码。
这是一个好方法吗?你能指点我一些例子/论文/文章吗?
解决方案
推荐阅读
- ios - 在 iOS 模块的 Libgdx 中实现 firebase 时未找到框架
- python - 使用 matplotlib 进行 Python 绘图
- javascript - 如何计算关于 dblclick 的点击并在 jQuery 中点击 4 次后执行某些操作?
- java - 在嵌套对象中使用 DynamoDB 注释
- sql - 多个电话号码条目合并为一个条目
- c# - 错误:“无法找到 .NET Core SDK。.NET Core 调试将无法启用。确保 .NET Core SDK 已安装并且在路径上。”
- javascript - React、Axios、PokeAPI 在使用“嵌套”获取设置挂钩时返回未定义
- node.js - Hyperledger Fabric 按键查询
- python - 如何从数据框中提取列并从中制作箱线图?
- javascript - 其他意外令牌