我有一个持续运行的Azure Web作业,当用户的时区时间达到12 AM时,它将在12 AM发送报告电子邮件。预计这些报告将在12 AM发送。考虑系统有100个用户,其中50个在同一时区。预计这50个用户应该在12 AM收到他们的邮件。但是发生的是所有人都在不同的时间。开始时间是12点。
这是我的逻辑
foreach(var item in reports){
if(Convert.ToDateTime(item.LastSendDate).Date < UserTimezoneDate.Date){
// send mail logic using report id
}
}
有人建议使用多线程,这是一种可能的解决方案,但是我想大规模地实现它。因此,如果我使用多线程,这是一个好方法吗?使用服务结构好吗?如果是,如何实现(仅逻辑)?