对于我基于 Spring 的 Web 应用程序,我现在需要每周向我的应用程序用户发送电子邮件。
有什么优雅的解决方案可以满足这一要求?
到目前为止,我已经提出了以下可能的解决方案:
- 我计划每周运行一次的专用cron 作业,独立于我的 Web 应用程序 JVM 进程和 Web 应用程序 Servlet 容器之外运行。
这个过程负责发送那些每周的电子邮件。为了完成发送个性化的电子邮件,它重用User
了我已经为我的 Web 应用程序开发的域类(例如我的类)。这个专用进程同时访问我的应用程序的 MySQL 数据库到正在运行的 Spring Web MVC servlet? - 我的Spring Web MVC servlet 或我的Servlet 容器内的预定机制。
在此设置中,电子邮件发送发生在与我的 Web 服务 Spring Web MVC servlet 相同的 JVM 和相同 servlet 容器中。也许这种设置具有(无关的?)优势,例如与托管在同一环境中的 servlet 的“数据库连接池共享”和“事务共享”“类共享”。
- 对于上述任何设想的设置,使用或不使用Spring Batch 。
我现在没有使用 Spring Batch 的经验来判断 Spring Batch 是否适合我的要求。
也许还有其他解决方案?
我对可以提供见解和指导做出有根据的决定的答案特别感兴趣。
电子邮件是通过我自己的基础设施还是通过第三方电子邮件 SaaS 服务发送的,这与这个特定问题无关。