亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Play Framework 中創建一個 cron 作業

如何在 Play Framework 中創建一個 cron 作業

縹緲止盈 2023-06-04 11:21:55
我正在使用 Play Framework 2.6.x 創建一個在特定時間(例如凌晨 3 點)運行任務的簡單 cron 作業。但現在我陷入了一個簡單的計劃任務:我創建了一個演員:package actors;import akka.actor.UntypedActor;import org.slf4j.LoggerFactory;public class DoSomethingActor extends UntypedActor {    private static final org.slf4j.Logger log = LoggerFactory.getLogger(DoSomethingActor.class);    @Override    public void onReceive(final Object message) throws Throwable {        log.info("Write your crone task or simply call your method here that perform your task " + message);    }}然后我創建了一個 Schedule 類,每次我設置時調用 Actor:package tasks;import java.util.concurrent.TimeUnit;import javax.inject.Inject;import javax.inject.Named;import javax.inject.Singleton;import akka.actor.ActorRef;import akka.actor.ActorSystem;import akka.actor.Cancellable;import scala.concurrent.duration.Duration;@Singletonpublic class DoSomethingScheduler {    @Inject    public DoSomethingScheduler(final ActorSystem system,            @Named("do-something-actor") final ActorRef doSomethingActor) {        final Cancellable scheduler;        final int timeDelayFromAppStart = 0;        final int timeGapInSeconds = 1; //Here you provide the time delay for every run        system.scheduler().schedule(                Duration.create(timeDelayFromAppStart, TimeUnit.MILLISECONDS), //Initial delay when system start                Duration.create(timeGapInSeconds, TimeUnit.SECONDS),     //Frequency delay for next run                doSomethingActor,                "message for onreceive method of doSomethingActor",                system.dispatcher(),                null);    }}最后,我將這些類綁定到一個模塊類中:package modules;import actors.DoSomethingActor;import com.google.inject.AbstractModule;import play.libs.akka.AkkaGuiceSupport;import tasks.DoSomethingScheduler;在這些事情之后,我運行了該應用程序,但它并沒有像我預期的那樣工作。我希望它每 1 秒顯示一次日志記錄,但沒有任何反應。你能幫我修一下嗎?太感謝了!
查看完整描述

1 回答

?
開心每一天1111

TA貢獻1836條經驗 獲得超13個贊

解決方案是在開發模式下,我必須向應用程序發送 HTTP 請求以加載模塊。在生產模式下,它們將立即加載。



查看完整回答
反對 回復 2023-06-04
  • 1 回答
  • 0 關注
  • 156 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號