Java 并发电子邮件处理(无垃圾邮件)
我有一个场景,我需要处理一个csv文件,其中包含来自设备的一些模拟数据。每一行都是一个输出,表示某一时间点的设备状态。在处理每一行时,检查特定列的差异/异常。 如果有异常,必须向一群检测到异常的人发送电子邮件。然而,为了避免垃圾邮件(csv有时可能是几十万行),我必须保持X秒的阈值。也就是说,如果在相同条件下(从模拟的同一设备)针对相同的异常情况发送邮件Java 并发电子邮件处理(无垃圾邮件),java,multithreading,akka,Java,Multithreading,Akka,我有一个场景,我需要处理一个csv文件,其中包含来自设备的一些模拟数据。每一行都是一个输出,表示某一时间点的设备状态。在处理每一行时,检查特定列的差异/异常。 如果有异常,必须向一群检测到异常的人发送电子邮件。然而,为了避免垃圾邮件(csv有时可能是几十万行),我必须保持X秒的阈值。也就是说,如果在相同条件下(从模拟的同一设备)针对相同的异常情况发送邮件阈值) 如果是,那么我将使用消息id获取所有警报,并将它们发送出去,并将它们的所有状态更新为“已发送”-否则只需忽略 我从一个线程池执行器开始,
阿克卡会是这种过程的一个很好的候选人吗?欢迎您从以前的实现经验中获得任何见解或教训(我必须坚持使用JVM)。您可以使用分布式Akka作为替代(请参阅此处的良好教程),但为什么?只需稍微更新已起作用的内容: 1) 完全删除Executor,这里不需要它,一个接一个地发送电子邮件(我想你不会试图一次发送数百万封邮件,对吧?)
2) 清理应用程序上的旧邮件数据库开始解决磁盘空间问题。如果您使用Akka群集,Akka可以帮助您进行分发。这在节点上为您提供了一个动态的对等集群,如果您需要的话,这非常好。除此之外,Akka还基于消息工作,这听起来很适合为您的域建模 但是,请注意,Akka基于actor编程模型,这很好,但实际上与java中的多线程程序不同。所以有一个学习曲线。如果您需要快速解决方案,它可能不是最佳匹配。如果你愿意花点时间在这件事上,并了解阿克卡是关于什么的,这可能是一个很好的匹配