Seb*_*ces 3 email schedule scala scheduler task
我的问题是我如何安排在给定时间每天执行的任务。
我有下一个代码:
class ScheduleService {
private val mail = new MailController
def sendMailSchedule={
val actorSystem = ActorSystem()
val scheduler = actorSystem.scheduler
val task = new Runnable {
def run() {
mail.sendMail("user@gmail.com", "Subject", "Body")
println("Send")}
}
implicit val executor = actorSystem.dispatcher
scheduler.schedule(
initialDelay = 0 seconds,
interval = 7 day,
runnable = task)
}
}
Run Code Online (Sandbox Code Playgroud)
邮件控制器已实现,并发送邮件。
此代码每7天发送一封邮件。我想要的是每天下午6点发送邮件。
在您的代码中,初始延迟为零秒。如果您计算从现在到下一个实例6pm之间的时间间隔,然后将其用作初始延迟(标准延迟为1天),则将获得所需的距离。
例如,如果现在是下午4:45,则您希望初始延迟为75分钟。
scheduler.schedule(
initialDelay = timeToNext6pm,
interval = 1 day,
runnable = task)
Run Code Online (Sandbox Code Playgroud)