Tôi đang cố gắng sử dụng bộ lập lịch-thạch anh-akka để kích hoạt sự kiện dọn dẹp trong các khoảng thời gian đều đặn. Tôi nhận được lịch trình để gửi tin nhắn cho các diễn viên, nhưng chỉ khi không có lịch liên kết với lịch trình. Bất cứ khi nào tôi đính kèm lịch vào lịch biểu, diễn viên không bao giờ nhận được bất kỳ tin nhắn nào.Trình lên lịch thạch anh Akka không bao giờ kích hoạt diễn viên của tôi
Đây là phần ứng dụng.conf có liên quan đến bộ lập lịch-thạch anh-akka. Nếu tôi loại bỏ các dòng
lịch = [ "Minimal"]"
từ cấu hình, diễn viên của tôi được kích hoạt. Nếu tôi rời khỏi dòng trong, không có diễn viên được gọi.
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"
}
}
}
}
}
tôi đang khởi tạo phần mở rộng từ một ứng dụng play framework, trong Global.java:
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");
}
}
}
việc thực hiện diễn viên trông giống như sau:
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");
}
}
Bạn đã tìm thấy giải pháp cho điều này chưa? Tôi có cùng một vấn đề. – Frane