Ожидание результата графика API / пакетного API
Как я могу установить не ждать ответа от вызова API?
У меня есть большой пакетный запрос (один зависит от другого), но приложение не требует результатов. Просто скажите "Facebook это сделать" и не ждите ответа.
Как я могу установить не ждать ответа?
2 ответа
Я был вовлечен в проект некоторое время назад, где мы реализовали очереди для чего-то похожего на это. (Приложение размещало на стенах около 150 страниц, а также собирало некоторые другие данные.
Наше решение было таким:
У нас была таблица очередей, которая была заполнена Джобсом. Они были составлены из параметров, токена и конкретного вызова API Facebook. Таблица также имела столбец состояния, для которого было установлено значение запланировано / успешно / неудачно, столбец ответа и несколько столбцов даты и времени, запланированных и отправленных.
Сценарий, который просматривал запланированные задания, затем выполнял вызовы API и собирал ответ, выполнялся заданием cron с произвольным интервалом.
Само приложение может просматривать таблицу очередей и создавать отчет о выполненных заданиях и их ответах, а также о предстоящих запланированных заданиях.
Я считаю, что вы ищете способ сделать асинхронные вызовы PHP. Вы можете выполнить некоторые запросы самостоятельно, так как я не думаю, что PHP FB SDK поддерживает такие запросы.
Я считаю, что curl_multi (только php5) - это решение, которое вы ищете:
- http://pl.php.net/manual/en/function.curl-multi-exec.php (пожалуйста, посмотрите на пример книги)
Вы также можете найти этот QA полезным: