首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Firebase作业分派程序每周安排一次任务

使用Firebase作业分派程序每周安排一次任务
EN

Stack Overflow用户
提问于 2018-06-14 07:15:03
回答 1查看 569关注 0票数 0

尝试过按小时调度重复任务的作业调度器。已经为问题编写了代码片段,但不确定这是否是一个正确的实现。

片段用于每周每周11小时安排一项任务。

对此或其他可能的解决方案的任何纠正都会有很大帮助。

代码语言:javascript
运行
复制
    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);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-14 07:30:46

我认为您没有正确地实现Firebase JobDispatcher

代码语言:javascript
运行
复制
Trigger.executionWindow()

在这种情况下,您可以在计划作业完成后,在执行任务的时间之后写一遍。有关更多信息,请参见:https://stackoverflow.com/a/42111723/7384780

您可以通过使用executionWindow (获取下周一的时间)- System.currentTimeMillis()调度您的第一个非经常性作业,然后在JobService中使用executionWindow为7* 24 * 60 * 60启动一个循环作业来解决问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50851652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档