我有一个php脚本,它负责从我的iPhone应用程序读取一些请求参数。一旦我做了一些操作,我将它们保存在数据库中,并需要使用Apple APNS发送一些推送通知消息。所以目前它在代码中完成了这样的工作。在后台运行php代码块
<?php
$param1 = $_POST['param1'];
$param2 = $_POST['param2'];
//saving part here
//push notifications
$pushService = new PushService();
$pushService -> init();
$pushService -> push($param1, $param2);
//json response
echo json_encode(array($success, $dbsavedid);
?>
问题发生在推动部分。现在,这个推送通知代码块需要很长时间才能执行,因为该表的数据量很大。因此,iPhone应用程序等待太久才能执行(以获得对iPhone的成功响应)。
因此,有什么办法可以使这个推动部分异步,并使用回声给iPhone端发送响应,而不是使用单独的脚本进行推送通知?另外请注意,我需要从保存的记录以及iPhone端获取一些数据。所以我需要输出到iPhone端。
我们在该表中讨论了多少记录?如果它不是数百万和数百万,那么你可能会遇到一些严重的模式设计问题。 什么是“漫长的时间”?我们是在谈论几十秒,还是根据您的需求,超过500毫秒被认为是很长的? –
这需要时间,因为连接到APNS并发送通知需要时间。大约有100-1000条记录,现在需要5-10分钟才能得到响应。它起初工作完美,但随着记录数量的增加,它降低了速度。 http://developer.apple.com/library/mac/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ApplePushService/ApplePushService.html – Dilshan
5-10分钟????我认为在后台运行该代码隐藏了真正的问题:错误的代码/数据结构。当然,你可以在后台运行代码,并且它会工作得很好,直到你将服务器上的这样一个负载整个东西刚刚崩溃的那一刻...... –