我有一個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分鐘????我認爲在後臺運行該代碼隱藏了真正的問題:錯誤的代碼/數據結構。當然,你可以在後臺運行代碼,並且它會工作得很好,直到你將服務器上的這樣一個負載整個東西剛剛崩潰的那一刻...... –