domain-driven-design - 定时任务应该放哪一层?

标签 domain-driven-design scheduled-tasks architecture n-tier-architecture

我正在尝试使用分层架构实现 DDD 应用程序。我有:

  • 基础架构层 - 实现应用程序特定技术部分的层。
  • 领域层——包含领域模型的层。
  • 应用层 - 包含与域模型交互的干扰的层。
  • 和接口(interface)层 - 从外部接收事件的层。

经典的 3 层(+ 基础设施)架构非常清晰。但是我的申请不是很经典。除了 UI 之外,我还有应该定期运行的计划任务。我想过把这样的任务放在接口(interface)层,因为这些任务实际上处理的是像 UI 这样的事件。但是有一个问题,我无法决定我应该在哪一层放置一个调度程序来触发计划任务的事件。

我画了一张草图

http://imgur.com/rY37b.png

scheduler对象应该放在哪一层?或者可能是另一种使用内部事件生成器设计应用程序的方法。

最佳答案

对我来说,调度器是任务执行器的宿主(就像你的 JSP 容器是你的 UI 的宿主一样)。我会将其建模为外部实体,并将其作为另一个基础设施项目实现。

关于domain-driven-design - 定时任务应该放哪一层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3912823/

相关文章:

java - 在哪里实例化简单值/实体对象? DDD

design-patterns - DDD审计?域层还是存储库层?

java - 服务层和领域模型的问题

java - Spring 启动: Getting @Scheduled cron value from database

api - 面向任务的用户界面和 Rest 应用服务器 API

database - 设计 - 动态数据映射

kubernetes - Kubernetes 上的 Redis 主/从复制可实现超低延迟

java - hibernate 应用程序是域驱动的吗?

python - 每天运行一次 Python 脚本

Grails 在没有插件的情况下安排任务