【发布时间】:2018-01-21 16:58:26
【问题描述】:
我正在开发一个 java 独立应用程序/框架。该应用程序每天根据数据库中的数据生成一次报告,它计划每天运行一次。应用程序必须是通用的以支持不同的报告。经过一些研究,我想将每个报告的元数据存储在数据库中。例如报告名称、启用、返回报告数据的 sql 查询等。
每个计划作业都与指定的报告(报告 ID)相关联。
简而言之,工作流程是 计划作业运行 > 检索特定报告的元数据 > 运行 sql 查询 > FTP 报告文件 > 通过电子邮件发送报告 > 结束
可能会添加更多步骤。并且还取决于可能不需要成功完成的步骤。例如如果 FTP 失败,流程应该继续。
当前驱动流的类是 ReportService,它检索元数据,使用 FTP 类,然后是 Email 类。
由于我想让框架可扩展,用户可以扩展 ReportService 类并转换检索到的数据,在继续正常流程(ftp>电子邮件)之前调用其他一些业务服务。
我正在寻找可以帮助我使框架通用且易于扩展的设计模式,特别是用于实现工作流程的模式,如果其中一个步骤失败,则取决于流程应该终止或继续的步骤。
【问题讨论】:
标签: java spring design-patterns