作业之间的 Firebase Job Dispatcher 间隔会随着时间的推移而增加
Firebase Job Dispatcher interval between jobs increases over time
我正在使用 Firebase Job Dispatcher 计划每 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 秒 window 作为作业间隔时间,但一段时间后作业每 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 分钟运行一次,这很好。一段时间后,间隔以线性方式增加。
注意:我正在 Android 5.1.1 和华为设备上进行测试,该应用程序被列为 受保护应用程序。
这是由于您的
.setRetryStrategy(RetryStrategy.DEFAULT_LINEAR)
如果你看一下这个文件https://github.com/firebase/firebase-jobdispatcher-android/blob/master/jobdispatcher/src/main/java/com/firebase/jobdispatcher/RetryStrategy.java
很明显,重试状态在
中呈线性增加
/** 预期时间表是:[30s, 60s, 90s, 120s, ..., 3600s] */
您可以按照下面的link
尝试创建自己的自定义重试策略
https://github.com/firebase/firebase-jobdispatcher-android/issues/179
我正在使用 Firebase Job Dispatcher 计划每 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 秒 window 作为作业间隔时间,但一段时间后作业每 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 分钟运行一次,这很好。一段时间后,间隔以线性方式增加。
注意:我正在 Android 5.1.1 和华为设备上进行测试,该应用程序被列为 受保护应用程序。
这是由于您的
.setRetryStrategy(RetryStrategy.DEFAULT_LINEAR)
如果你看一下这个文件https://github.com/firebase/firebase-jobdispatcher-android/blob/master/jobdispatcher/src/main/java/com/firebase/jobdispatcher/RetryStrategy.java 很明显,重试状态在
中呈线性增加/** 预期时间表是:[30s, 60s, 90s, 120s, ..., 3600s] */
您可以按照下面的link
尝试创建自己的自定义重试策略https://github.com/firebase/firebase-jobdispatcher-android/issues/179