有关多个 Facebook Json 请求的性能建议

performance advice regarding multiple facebook Json requests

本文关键字:性能 请求 Json Facebook      更新时间:2023-09-26

我正在开发一个Facebook应用程序,可以搜索你职位附近的Facebook事件。唯一的方法是搜索您所在区域的所有地点 id,然后针对每个地点检查今天是否有事件。我遇到的问题是计算需要 1-1:30 分钟,这有点长。这是我使用的代码(我知道可能不是最好的):

foreach (var item in allPlacesIds) 
{
    RunOnUiThread (() =>loading.Text = string.Format ("Loading {0} possible events out of {1}",count,allPlacesIds.Count));
    string query = string.Format ("{0}?&fields=id,name,events.fields(id,name,description,start_time,attending_count,declined_count,maybe_count,noreply_count).since({1}).until({2})", item,dateNow,dateTomorrow);
    JsonObject result=(JsonObject)fb.Get (query, null);
    try
    {
        JsonArray allEvents= (JsonArray)((JsonObject) result ["events"])["data"];
        foreach (var events in allEvents)
        {
            Events theEvent= new Events(((JsonObject)events) ["id"].ToString(),
                                       ((JsonObject)events) ["name"].ToString(),
                                       ((JsonObject)events) ["description"].ToString(),
                                       ((JsonObject)events) ["start_time"].ToString(),
                                       int.Parse(((JsonObject)events) ["attending_count"].ToString()),
                                       int.Parse(((JsonObject)events) ["declined_count"].ToString()),
                                       int.Parse(((JsonObject)events) ["maybe_count"].ToString()),
                                       int.Parse(((JsonObject)events) ["noreply_count"].ToString()));
            todaysEvents.Add(theEvent);
        }
    }
    catch(Exception ex) 
    {
    }
    count++;
}

在尝试开始的地方,我曾经有一个 if,但这需要更长的时间,所以我用 try 块替换了它,因为结果为 null。

我知道这不完全是一个技术问题,但我觉得也许你们知道更快更好的实现,我唯一的其他选择是创建和托管一个 Web 服务并使用它来查询数据。 问题是我需要在服务器/真实 IP 上投入大量资金,然后我需要创建一个计划作业来每天更新数据。

每个 API 调用都需要一些时间,使其更快的唯一方法是使用批处理请求。以下是有关这些的文档: https://developers.facebook.com/docs/graph-api/making-multiple-requests

请记住,这不会算作一次 API 调用,它的数量仍然相同,因此请注意 API 限制。