首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在图形api中对fql查询进行批处理请求?

如何在图形api中对fql查询进行批处理请求?
EN

Stack Overflow用户
提问于 2012-03-09 10:12:02
回答 3查看 5.6K关注 0票数 2

我在单个函数中有4-5fql查询。他们每一个都要花2-4秒来执行。执行整个函数总共需要14到15秒。用户需要等待很长时间。所以我想缩短处理时间。(PHP中没有很好的支持多线程的概念。)

我听说过图api中的批处理请求概念。我在googled上搜索了很多,但不知道如何在图形api中使用批处理请求来处理fql查询。

  • 有人能举例说明使用fql查询的批处理请求吗?
  • 到什么时候查询处理时间会减少?
  • 还有其他方法来减少很多fql查询的时间吗?
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-09 10:15:04

与其分别调用每个FQL查询,为什么不使用FQL多重查询?

http://developers.facebook.com/docs/reference/rest/fql.multiquery/

更新,否则,如果您不想使用多查询,我认为您要寻找的是这里。我找不到更多关于FQL和Batch的信息了。

代码语言:javascript
复制
curl \
     -F 'access_token=…' \
     -F 'batch=[{ "method": "POST", \
    "relative_url": "method/fql.query?query=select+name+from+user+where+uid=4", \
     }]
https://graph.facebook.com
票数 2
EN

Stack Overflow用户

发布于 2012-03-09 10:52:09

更新:

代码语言:javascript
复制
https://graph.facebook.com/?batch=[{"method":"GET","relative_url":"me"},{"method":"GET","relative_url":"me/friends?limit=50"}]&access_token=ACCESS_TOKEN&method=post

更多信息在这里:http://developers.facebook.com/blog/post/2011/03/17/batch-requests-in-graph-api/

票数 7
EN

Stack Overflow用户

发布于 2012-03-09 14:00:05

//$current_user=facebook id

代码语言:javascript
复制
 $query1="SELECT uid, name FROM user WHERE is_app_user=1 AND uid IN (SELECT uid2 FROM friend WHERE uid1 = $current_user)";
 $query2="SELECT uid, name, work_history FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = $current_user )";
 $query3="SELECT uid, name, work, education FROM user WHERE uid = $current_user";
 $queries = array(
           array('method'=>'GET', 'relative_url'=>'method/fql.query?query='.str_replace(' ','+',$query1)),
           array('method'=>'GET', 'relative_url'=>'method/fql.query?query='.str_replace(' ','+',$query2)),
           array('method'=>'GET', 'relative_url'=>'method/fql.query?query='.str_replace(' ','+',$query3))
            );

            $objs = $facebook->api('/?batch='.json_encode($queries), 'POST');

$objs获得整个查询结果的json数组。

这大大节省了时间。这3个查询分别需要总共9秒。对于多查询,它需要7秒。对于批处理请求,它需要3.6秒。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9632277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档