Scala - 在一天中的给定时间安排任务:运行 每天下午 6 点执行任务
Scala - schedule a task at a given time of the day: run a task everyday at 6pm
我的问题是我如何安排每天在给定时间执行的任务。
我有下一个代码:
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点发邮件
在您的代码中,初始延迟为零秒。如果您计算现在与下一个下午 6 点之间的时间距离,然后将其用作初始延迟,标准延迟为 1 天,您将得到想要的结果。
例如,如果现在是 4:45pm,您希望初始延迟为 75 分钟。
scheduler.schedule(
initialDelay = timeToNext6pm,
interval = 1 day,
runnable = 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)
}
}
邮件控制器已实现并发送邮件。
此代码每 7 天发送一封邮件。我想要的是每天下午6点发邮件
在您的代码中,初始延迟为零秒。如果您计算现在与下一个下午 6 点之间的时间距离,然后将其用作初始延迟,标准延迟为 1 天,您将得到想要的结果。
例如,如果现在是 4:45pm,您希望初始延迟为 75 分钟。
scheduler.schedule(
initialDelay = timeToNext6pm,
interval = 1 day,
runnable = task)