我的问题是如何安排每天在给定时间执行的任务。
我有下一个代码:
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)
}
}
邮件 Controller 已实现并发送邮件。
此代码每 7 天发送一封邮件。我想要的是每天下午 6 点发送邮件。
最佳答案
在您的代码中,初始延迟为零秒。如果您计算从现在到下一个下午 6 点之间的时间距离,然后将其用作初始延迟,标准延迟为 1 天,您就会得到您想要的结果。
例如,如果现在是下午 4:45,您希望初始延迟 75 分钟。
scheduler.schedule(
initialDelay = timeToNext6pm,
interval = 1 day,
runnable = task)
关于Scala - 在一天中的给定时间安排任务 : run a task everyday at 6pm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31944110/