¿Cómo puedo optimizar mi FQL para evitar tiempos de espera de Facebook?

Tomemos un simpleFQL consulta para obtener todos los enlaces compartidos por los amigos de un usuario desde ayer, por ejemplo:

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

Si un usuario tiene 50 amigos, esto se ejecutará perfectamente. Pero si un usuario tiene cientos de amigos, la mayoría de las veces Facebook devuelve un error.

Opciones:

Limite la consulta de selección de amigo a 50 - Claro, eso funcionará, pero siempre mostrará los mismos amigos. A menos que quieras unIvy League-only feed, esto no es muy útil. Consultas por lotes - Cree un lote de consultas utilizando compensaciones y limite cada una a 50. Lamentablemente, tampoco hay mejoras aquí.Loop It - Hasta ahora, este es el mejor que he encontrado. Recorra las mismas consultas que generó para una consulta por lotes, pero hágalo una a la vez con varias llamadas de consulta API API. Pero incluso esto es impredecible.

¿Cómo puedo consultar Facebook adecuadamente para garantizar resultados exitosos?

Notas:

Estoy usando la última versión de Facebook php sdk, 3.1.1 También intenté extender las opciones predeterminadas para tiempos de espera de rizo en base_facebook.php

Errores comunes asociados con el tiempo de espera:

1.

Fatal error:  Uncaught Exception: 1: An unknown error occurred thrown in /..../facebook/php-sdk/src/base_facebook.php on line 708

line 708 es un error de excepción:

// 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

Respuestas a la pregunta(3)

Su respuesta a la pregunta