【发布时间】:2019-12-13 08:57:46
【问题描述】:
您好,我正在使用 WorkManager 和 UniqueWork。我有这个用例:我的UniqueWork 被服务器error 500 延迟,工作是由退避策略安排的,我想知道是否可以强制UniqueWork 立即触发?感谢您的回答。
【问题讨论】:
标签: android kotlin android-workmanager server-error
您好,我正在使用 WorkManager 和 UniqueWork。我有这个用例:我的UniqueWork 被服务器error 500 延迟,工作是由退避策略安排的,我想知道是否可以强制UniqueWork 立即触发?感谢您的回答。
【问题讨论】:
标签: android kotlin android-workmanager server-error
仅当您从工作人员返回 Result.retry() 时,WorkManager 才会使用退避策略。您可以设置的最小值为 10 秒 (MIN_BACKOFF_MILLIS)。
如何处理返回 HTTP 代码 500 的服务器完全取决于您的工作人员。如果这是您想要的,您还可以在工作人员内部循环您想要重试请求的次数。唯一的限制是工作人员最多可以持续 10 分钟(或者您可以使用 setForeground() 将其提升为前台服务(从 v2.3-alpha02 开始)。
您可以做的是在 Worker 内部重试给定的次数(例如 3 次),如果这不起作用,则将其作为不可用的服务处理并在以后重试。
【讨论】: