随着时间的推移,工作之间的射击工作派遣者间隔会增加



我正在安排使用Firebase Jobspatcher的作业每1分钟定期执行。这是我的配置:

Job job = dispatcher.newJobBuilder()
                .setLifetime(Lifetime.FOREVER)
                .setService(JobService.class)
                .setTag("JobDispatcher")
                .setReplaceCurrent(false)
                .setRecurring(true)
                .setTrigger(Trigger.executionWindow(30, 60))
                .setRetryStrategy(RetryStrategy.DEFAULT_LINEAR)
                .build();

我在工作服务的Onstartjob上保留了一个记录器,以检查何时执行工作。尽管我在工作间隔时间内保留了30-60窗口,但一段时间后每20-25分钟执行工作。记录器看起来像这样:

Job start 2018-02-14 9:28:16
Job start 2018-02-14 9:30:25
Job start 2018-02-14 9:31:11
Job start 2018-02-14 9:32:46
Job start 2018-02-14 9:34:22
Job start 2018-02-14 9:37:16
Job start 2018-02-14 9:42:27
Job start 2018-02-14 9:48:36
Job start 2018-02-14 9:57:33
Job start 2018-02-14 10:09:11
Job start 2018-02-14 10:24:29
Job start 2018-02-14 10:41:16
Job start 2018-02-14 11:01:52
Job start 2018-02-14 11:25:16
Job start 2018-02-14 11:52:27
Job start 2018-02-14 12:15:06

在前几分钟,该服务每1-2分钟运行一次,这很好。一段时间后,间隔以线性方式增加。

nb:我正在Android 5.1.1和Huwaei设备上进行测试,该应用程序被征集为受保护的应用程序

这是由于您的

.setRetryStrategy(RetryStrategy.DEFAULT_LINEAR)

如果您查看此文件,https://github.com/firebase/firebase/firebase-jobdispatcher-android-and-blob/blob/master/jobdispatcher/src/src/main/java/java/java/com/com/firebase/firebase/jobdispatcher/jobdispatcher/retrerystrategy.java一下显而易见的是,重试疫苗在

中线性增加

/**预期的时间表是:[30s,60s,90s,120s,...,3600s]*/

您可以尝试按照下面的链接来创建自己的自定义重试策略

https://github.com/firebase/firebase-jobdispatcher-android/issues/179

相关内容

最新更新