2016-12-02 53 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上,同时设置适当的依赖关系,但肯定会花费更多时间。