簡體   English   中英

使用Firebase作業調度程序每周安排任務

[英]Schedule a task weekly using Firebase job dispatcher

嘗試過按小時調度重復任務的作業調度程序。 已經為該問題編寫了代碼段,但不確定這是否是正確的實現。

Snippet用於在每周的星期一11小時安排任務。

任何對此解決方案或其他可能解決方案的更正將大有幫助。

    Calendar c1 = Calendar.getInstance();
    c1.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
    c1.set(Calendar.HOUR_OF_DAY, 11);
    c1.set(Calendar.MINUTE, 0);
    c1.set(Calendar.SECOND, 0);
    c1.set(Calendar.MILLISECOND, 0);

    FirebaseJobDispatcher dispatcher = new FirebaseJobDispatcher(new GooglePlayDriver(Splash_onboarding.this));

    Job myJob = dispatcher.newJobBuilder()
            .setService(ScheduledNotificationService.class)
            .setTag(dispatcherTag)
            .setRecurring(true)
            .setLifetime(Lifetime.FOREVER)
            .setTrigger(Trigger.executionWindow(Math.round(c1.getTime().getTime() / 1000), (Math.round(c1.getTime().getTime() / 1000)) + 60))
            .setReplaceCurrent(true)
            .setRetryStrategy(RetryStrategy.DEFAULT_EXPONENTIAL)
            .build();

    dispatcher.mustSchedule(myJob);

我認為您沒有正確實施Firebase JobDispatcher

Trigger.executionWindow()

在這種情況下,您可以在安排作業后多少時間執行作業后進行寫操作。 有關更多信息,請參見: https : //stackoverflow.com/a/42111723/7384780

您可以通過以下方式解決您的問題:安排您的第一個非經常性工作,使用executionWindow(獲取下周一的時間)-System.currentTimeMillis(),然后在JobService內部啟動一個定期工作,其執行窗口為7 * 24 * 60 * 60。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM