我的问题是我如何安排在特定时间每天执行的任务。
我有下一个代码:
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)
}
}
实施邮件控制器并发送邮件。
此代码每7天发送一封邮件。我想要的是每天下午6点发送邮件。
答案 0 :(得分:3)
在您的代码中,您的初始延迟为零秒。如果你计算从现在到下一个6pm的实例之间的时间距离,那么使用它作为初始延迟,标准延迟为1天,你将得到你想要的。
例如,如果现在是下午4:45,你想要一个75分钟的初始延迟。
scheduler.schedule(
initialDelay = timeToNext6pm,
interval = 1 day,
runnable = task)