【问题标题】:Android - WorkManager force UniqueWork to fire when is delayed by backoff policy?Android - WorkManager 强制 UniqueWork 在被退避策略延迟时触发?
【发布时间】:2019-12-13 08:57:46
【问题描述】:

您好,我正在使用 WorkManagerUniqueWork。我有这个用例:我的UniqueWork 被服务器error 500 延迟,工作是由退避策略安排的,我想知道是否可以强制UniqueWork 立即触发?感谢您的回答。

【问题讨论】:

    标签: android kotlin android-workmanager server-error


    【解决方案1】:

    仅当您从工作人员返回 Result.retry() 时,WorkManager 才会使用退避策略。您可以设置的最小值为 10 秒 (MIN_BACKOFF_MILLIS)。

    如何处理返回 HTTP 代码 500 的服务器完全取决于您的工作人员。如果这是您想要的,您还可以在工作人员内部循环您想要重试请求的次数。唯一的限制是工作人员最多可以持续 10 分钟(或者您可以使用 setForeground() 将其提升为前台服务(从 v2.3-alpha02 开始)。

    您可以做的是在 Worker 内部重试给定的次数(例如 3 次),如果这不起作用,则将其作为不可用的服务处理并在以后重试。

    【讨论】:

    • 我认为工人不可能。我的用例非常复杂,所以我可能必须实现你建议的东西,但我还必须考虑服务器流量。不过谢谢你的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多