簡體   English   中英

iOS 作業隊列類似於 Path 的 android 優先作業隊列

[英]iOS job queue similar to Path's android priority job queue

有沒有人有一個類似於Path 的 Android Priority Job Queue的 iOS 作業隊列,他們不介意與社區分享? 我對 iOS 很陌生,所以我不確定平台本身是否提供了這樣的解決方案。 在 android 上不存在這樣的東西,所以我不得不使用 Path 慷慨提供的庫。 如果 iOS 本身或 Xcode 有這樣的解決方案/API,請指點我。 如果沒有,請分享你的,如果你不介意的話。 謝謝。

基本上我正在尋找一個作業隊列,即使沒有網絡,它也可以允許用戶將數據發送到服務器:這意味着即使用戶應該關閉 iPhone,隊列也會保留數據。 然后稍后,當系統檢測到網絡時,將數據推送到服務器。

SO 上已經有一個類似的問題,所以我將其包括在內以獲取更多詳細信息: How to queue up data for server dispatch on android 不同之處在於我的問題是針對 iOS 的,而他們的問題是針對 android 的。

用例

我的情況是想象一個用戶正在乘坐地鐵(無網絡)登上火車,但決定發送電子郵件。 然后關閉應用程序,甚至關閉手機。 然后一個小時后,在用戶重新打開手機后,當檢測到網絡時,應用程序會發送電子郵件。

https://github.com/thisandagain/queue很有前途。 它具有重試能力並且是持久的。

可以修改AFNetworking的請求操作和請求操作管理器,無需太多工作即可完成此操作。

需要的修改:

  • AFHTTPRequestOperation由於沒有連接而失敗時,復制該操作並將其存儲(例如在NSArray
  • 使用內置的可達性管理器,當可達性返回時重試數組中的操作
  • 如果操作成功,則從數組中刪除操作

請注意,復制操作時不會復制完成塊。 從文檔:

  • -copy-copyWithZone:返回一個帶有原始NSURLRequest的新操作。 因此,復制機制不是在特定時刻復制操作的精確副本,而是返回一個全新的實例,這對於重試操作非常有用。
  • 操作的副本將不包括原始的outputStream
  • 操作副本不包括completionBlock ,因為它通常會強烈捕獲對self的引用,否則在復制時會產生指向原始操作的不直觀的副作用。

我不知道有任何開源庫已經實現了這些修改,或者我會指向你那里。

我發現了非常相似的庫,如路徑的作業優先級隊列

https://github.com/lucas34/SwiftQueue/wiki

希望這對某人有所幫助,因為這是非常古老的問題,但可能會幫助像我這樣仍在尋找的人:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM