2016-12-02 63 views
0

我想從iOS發送某些數據到在線MySQL數據庫。 PHP在服務器上用於處理數據接收和插入。如何管理逐個上傳操作

問題是我有幾個數據包。關鍵是要逐一發送,這意味着我需要一種機制讓隊列中的第二個數據包等待,直到iOS從服務器收到來自服務器的反饋,確認第一組數據已經存儲到數據庫中。

我最初嘗試創建一個串行調度隊列,旨在讓iOS應用程序按順序執行上傳工作。雖然iOS方面按照順序執行了這項工作,但是每個任務只是在發送它的數據包時「完成」,而不用等待數據是否已經插入到數據庫中。然後問題在於,由於諸如網絡連接等問題,在將數據和數據完全保存到服務器中的MySQL之間總會有一段時間的失誤。

因此,結果是數據可能無法以所需順序保存,稍後的某些數據可能比先前的數據更早保存。

我猜想缺少的是從服務器端到iOS端的「反饋」機制。

有人可以提出一種方法來實現這種反饋機制,所以我可以控制上傳數據任務的序列順序。

非常感謝!

問候, 保羅

回答

1

如果你將數據發送到服務器,然後大多數可用的框架提供的回調。隨着AFNetworking(或現稱Almofire),它是這樣的:

[[ConnectionManager instance] GET: @"link" parameters: nil 
success:^(AFHTTPRequestOperation* operation, id responseObject) 
{ 
} 
failure:^(AFHTTPRequestOperation* operation, NSError* error) 
{ 
}]; 

所以,你可以把你的代碼中給出的處理程序,並不斷提出要求。

您可能還想創建併發操作並將它們放在OperationQueue上,同時設置適當的依賴關係,但肯定會花費更多時間。