如何逐个管理上传操作

时间:2016-12-02 16:15:44

标签: php ios mysql nsoperationqueue

我正在尝试将某些数据从iOS发送到在线MySQL数据库。 PHP在服务器上用于处理数据接收和插入。

问题是我有几个数据包。关键是逐个发送它们,这意味着我需要一种机制让队列中的第二个数据包等待,直到iOS收到来自服务器的反馈,确认第一组数据已经存储到数据库中。

我最初尝试创建一个串行调度队列,旨在让iOS应用程序按顺序执行上传工作。尽管iOS方面确实按照顺序执行了工作,但每个任务只是“完成”发送其数据包而无需等待数据是否已插入数据库。然后问题是,由于网络连接等问题,在发送数据和数据完全保存到服务器中的MySQL之间总会有一段时间间隔。

因此结果是数据可能无法以所需的顺序保存,一些以后的数据可能比先前的数据保存得更早。

我猜测缺少的是从服务器端到iOS端的“反馈”机制。

任何人都可以建议一种实现这种反馈机制的方法,这样我就可以控制上传数据任务的序列顺序。

非常感谢!

此致 保罗

1 个答案:

答案 0 :(得分:1)

如果要将数据发送到服务器,那么大多数可用的框架都会提供回调。使用AFNetworking(或现在称为Almofire),它看起来像这样:

10

因此,您可以将代码放在给定的处理程序中并不断发出请求。

您可能还想创建并发操作并将这些操作放在OperationQueue上,同时设置正确的依赖关系,但它确实更耗时。