Como otimizar meu FQL para evitar o tempo limite do Facebook?
Vamos dar uma simplesFQL
consulta para obter todos os links compartilhados pelos amigos de um usuário desde ontem, por exemplo:
SELECT link_id, title, url, owner, created_time
FROM link
WHERE
created_time > strtotime('yesterday') AND
owner IN (
SELECT uid2 FROM friend WHERE uid1 = me()
)
LIMIT 100
Se um usuário tiver 50 amigos, isso será executado perfeitamente. Mas se um usuário tiver centenas de amigos, o Facebook retornará um erro com mais frequência.
Options:
Limite o amigo, selecione a consulta para 50 - Claro, isso funcionará, mas sempre mostrará os mesmos amigos. A menos que você queira umIvy League-only feed, isso não é muito útil. Consultas em lote - Crie um lote de consultas usando deslocamentos e limite cada uma a 50. Infelizmente, também não há melhorias aquLoop It - Até agora, este é o melhor que encontrei. Faça um loop pelas mesmas consultas que você criou para uma consulta em lote, mas faça uma de cada vez com várias chamadas de consulta da API fql. Mas mesmo isso é um sucessComo posso consultar o Facebook adequadamente para garantir resultados bem-sucedidos?
Notas
Estou usando o mais recente Facebook php sdk, 3.1.1 Eu também tentei estender as opções padrão para tempos limite de curvatura no arquivo base_facebook.phpErros comuns associados ao Timeout:
1.
Fatal error: Uncaught Exception: 1: An unknown error occurred thrown in /..../facebook/php-sdk/src/base_facebook.php on line 708
line 708 é um erro de exceção:
// results are returned, errors are thrown
if (is_array($result) && isset($result['error_code'])) {
throw new FacebookApiException($result);
}
2.
Fatal error: Uncaught CurlException: 52: SSL read: error:00000000:lib(0):func(0):reason(0), errno 104 thrown in /..../facebook/php-sdk/src/base_facebook.php on line 814