Lei*_*zen 8 quartz-scheduler akka
我试图使用akka-quartz-scheduler定期触发清理事件.我让调度程序将消息发送给actor,但仅当没有与日程表关联的日历时.每当我将日历附加到日程表时,演员都不会收到任何消息.
这是与akka-quartz-scheduler相关的application.conf部分.如果我删除该行
日历= ["最小"]"
从配置中,我的演员被触发了.如果我离开该行,则不会调用任何演员.
akka {
quartz {
defaultTimezone = "Europe/Oslo"
schedules {
NowAndThen {
description ="Delete temp files now and then, eg every hour"
expression = "*/10 * * * * ?"
calendars = ["Minimal"]
}
}
calendars {
Minimal {
type = Daily
exclude {
startTime = "15:00"
endTime = "15:01"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我正在从Global.java中的playframework应用程序初始化扩展:
import akka.actor.ActorRef;
import akka.actor.ActorSystem;
import akka.actor.Extension;
import akka.actor.Props;
import com.typesafe.akka.extension.quartz.QuartzSchedulerExtension;
import play.Application;
import play.GlobalSettings;
import play.Logger;
import play.libs.Akka;
import uttrekk.CleanupRunner;
public class Global extends GlobalSettings {
public void onStart(Application app) {
AkkaStartUp.startup(app);
}
static class AkkaStartUp {
public static void startup(Application app) {
// Starter autoamtiske avelveringer norges eiendommer
ActorSystem system = Akka.system();
ActorRef cleanupRef =system.actorOf(new Props(CleanupRunner.class));
QuartzSchedulerExtension scheduler = (QuartzSchedulerExtension) QuartzSchedulerExtension.get(system);
scheduler.schedule("NowAndThen",cleanupRef,"Clean");
}
}
}
Run Code Online (Sandbox Code Playgroud)
actor实现看起来如下所示:
package uttrekk;
import akka.actor.UntypedActor;
import play.Logger;
import util.NewProperties;
import java.io.File;
import java.io.FilenameFilter;
public class CleanupRunner extends UntypedActor {
@Override
public void onReceive(Object message) throws Exception {
Logger.info("Running cleanup of temporary files");
}
}
Run Code Online (Sandbox Code Playgroud)
小智 3
该问题发生在日历初始化期间。检查 QuartzSchedulerExtension 类中的第 245 行:scheduler.addCalendar(name.toUpperCase, calendar, true, true)
日历是使用大写字母添加的,因此 Quartz 永远找不到它,从而导致没有作业被触发。如果你在 akka 配置中使用大写名称定义日历,它应该可以工作。
| 归档时间: |
|
| 查看次数: |
2896 次 |
| 最近记录: |