计划程序在scala中每周发送电子邮件

计划程序在scala中每周发送电子邮件,scala,akka-http,mailjet,Scala,Akka Http,Mailjet,我计划每周向我的每个消费者发送一封电子邮件,例如,每周一早上发送电子邮件,但根据消费者的当地时间,一些消费者在美国,另一些消费者在法国、澳大利亚、中国……,是否有办法在Scala中执行计划程序,以准确地知道何时发送电子邮件。我正在使用MailJetAPI发送电子邮件 import akka.actor.ActorSystem import scala.concurrent.ExecutionContext.Implicits.global import scala.concurrent.dura

我计划每周向我的每个消费者发送一封电子邮件,例如,每周一早上发送电子邮件,但根据消费者的当地时间,一些消费者在美国,另一些消费者在法国、澳大利亚、中国……,是否有办法在Scala中执行计划程序,以准确地知道何时发送电子邮件。我正在使用MailJetAPI发送电子邮件

import akka.actor.ActorSystem
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.duration._

val nextMonday = LocalDate.now() `with` TemporalAdjusters.nextOrSame(DayOfWeek.MONDAY)
val nextMondayMillis = nextMonday.toEpochDay
val actorSystem = ActorSystem("akka")
actorSystem.scheduler.schedule(nextMondayMillis - System.currentTimeMillis() milliseconds, 7 days){
//your email sending code here
}


还可以将Akka添加到您的依赖项中。

将来,您还可以使用Mailjet将在几周内发布的新电子邮件自动化方案。它将允许您插入datetime类型的联系人数据,并在稍后触发基于它的自动电子邮件

我尝试您的解决方案,但我得到错误:类型不匹配;找到:需要很长时间:scala.concurrent.duration.FiniteDuration actorSystem.scheduler.schedulenextMondayMillis-System.currentTimeMillis,7天{我已编辑。请立即尝试。它将安排第一次发送到下周一的第一次。如果您需要调试-您需要为计划方法使用不同的参数。下面的代码仅在第一个星期一发送电子邮件,而不是每周一发送电子邮件???@salma1您可能可以为计划方法打开scaladoc并阅读一些有关其参数的信息?第一个参数ter是初始延迟。因此,如果您在周三运行此代码,则if将计算需要等待多长时间才能启动第一次运行。秒参数7天表示它将在每7天(即每周)第一次运行后重复运行。