Принудительный возврат объекта ответа в AFNetworking
Я использую AFNetworking для запуска скрипта PHP, как показано ниже:
NSString *urlString = @"scriptURL.php";
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager POST:urlString parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
...
} success:^(AFHTTPRequestOperation *operation, NSDictionary *responseObject) {
NSLog(@"it worked!");
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"error: %@", error.description);
}];
Однако есть части скрипта, выполнение которых занимает больше времени (отправка большого количества push-уведомлений). В настоящее время это означает, что я не получаю объект ответа до тех пор, пока не будут отправлены все запросы, что приводит к значительной задержке. Есть ли способ принудительного возврата объекта ответа, чтобы более длительные и длительные действия могли выполняться в фоновом режиме? Другими словами, могу ли я принудительно вернуть объект ответа так, чтобы он возвращался до того, как я начну отправлять push-уведомления, так что стороне iOS не нужно зацикливаться на ожидании завершения других действий
1 ответ
Как все, вероятно, скажут вам, то, что вы пытаетесь достичь, не имеет ничего общего ни с AFNetworking, ни с самим вашим приложением для iPhone. В основном, если вашему API требуется слишком много времени для вычисления того, что он должен делать (в данном случае отправка push-уведомлений), AFNetworking игнорирует его, но просто ожидает ответа.
Если я правильно понял, вы сами разрабатываете PHP, так что вы можете быстро взглянуть на то, как запустить фоновый процесс в PHP, чтобы добиться того, о чем вы говорили.
В этом вам могут помочь несколько ссылок:
- https://florian.ec/articles/running-background-processes-in-php/
- http://www.sitecrafting.com/blog/to-run-php-code-in
И несколько других, которые могли бы удовлетворить ваши потребности в лучшем случае. Надеюсь, это поставит вас на правильный путь.