首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该用哪个春天图书馆来发送多线程的电子邮件?

我应该用哪个春天图书馆来发送多线程的电子邮件?
EN

Stack Overflow用户
提问于 2015-03-11 13:04:55
回答 2查看 1.2K关注 0票数 0

我的电子邮件太多了。我应该编写调度程序,以便向他们发送消息。信息是不同的。我使用spring框架4.x。

我可以编写简单的类,它连接到SMTP服务器。但在这种情况下,我也应该写我的线程库,以便发送电子邮件并行。

spring是否已经编写了库,这给了我更灵活的方法来完成这项任务?我不想使用线程。如果spring已经具备了这个功能,那就太好了。

,我需要Spring集成吗?

诚挚的问候,

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-11 13:44:21

是的,使用Spring绝对可以做到这一点,因为有一个ExecutorChannel实现可以与Spring中的TaskExecutor一起提供:

代码语言:javascript
复制
<channel id="sendEmailChannel">
   <dispatcher task-executor="threadPoolTaskExecutor"/>
</channel>

<int-mail:outbound-channel-adapter channel="sendEmailChannel" mail-sender="mailSender"/>

但是无论如何,您应该记住,所有Spring组件都是基于Java的,并且ExecutorService是在后台使用的。

另一方面,如果您只需要从Spring发送邮件,这将是一种开销,可以简单地使用遗留文件(如JavaMailSender )作为sendMail方法的bean和@Async来实现parallel需求。

更新

您能告诉我在这种情况下是否需要JMS吗?

我没看到任何与JMS相关的东西。解决方案中没有(或至少没有显示)任何真正的integration点。同样的,我甚至可以说关于仅仅是为了发送电子邮件。但是,使用Spring,您的SI配置就足够短了。另一方面,如果您最终会更好地学习Spring集成,那么您将获得更多的收益,可以通过JMS、AMQP、Kafka等将您的系统依赖于集成组件,以及外部依赖于其他系统。

老实说:很多年前,我第一次认识Spring是因为需要从FTP中获取文件并能够自动获取新文件。我只在Spring 1.0.0.M1中找到了解决方案。在对<int-ftp:inbound-channel-adapter>进行了简短的XML之后,我喜欢Spring,从那时起,它就成为了我生活的一部分。:-)

因此,这取决于您在您的简单应用程序中继续使用Spring,或者直接使用JavaMailSender来执行更正式的解决方案。

票数 2
EN

Stack Overflow用户

发布于 2015-03-11 13:18:51

您应该使用java执行器框架。例如,您可以编写如下代码:

代码语言:javascript
复制
ExecutorService executor = Executors.newWorkStealingPool();
executor.execute(() -> mailSender.send(mail));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28987379

复制
相关文章

相似问题

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