gpt4 book ai didi

quartz-scheduler - Akka-quartz 调度程序永远不会触发我的 Actor

转载 作者:行者123 更新时间:2023-12-04 08:44:31 26 4
gpt4 key购买 nike

我正在尝试使用 akka-quartz-scheduler 定期触发清理事件。我让调度程序将消息发送给 Actor ,但前提是没有与时间表关联的日历。每当我将日历附加到日程表时, Actor 永远不会收到任何消息。

这是与 akka-quartz-scheduler 相关的 application.conf 部分。如果我删除该行

日历 = ["最小"]"

从配置中,我的 Actor 被触发。如果我把台词留在里面,就没有 Actor 被叫到。

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"
}
}

}
}
}

我正在 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");

}
}
}

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");
}
}

最佳答案

该问题发生在日历初始化期间。
检查 QuartzSchedulerExtension 类中的第 245 行:
scheduler.addCalendar(name.toUpperCase,日历,真,真)

日历是使用大写添加的,所以 Quartz 永远找不到它,从而产生没有触发任何作业。
如果您使用大写名称在 akka 配置中定义日历,它应该可以工作。

关于quartz-scheduler - Akka-quartz 调度程序永远不会触发我的 Actor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19727325/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com