簡體   English   中英

關於多個Facebook Json請求的性能建議

[英]performance advice regarding multiple facebook Json requests

我正在開發一個Facebook應用程序,該應用程序搜索您所在位置附近的Facebook事件。唯一的方法是搜索您所在區域中的所有地點ID,然后針對每個這些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調用都需要一些時間,因此使其更快的唯一方法是使用Batch Requests 這是關於這些文件的文檔: https : //developers.facebook.com/docs/graph-api/making-multiple-requests

請記住,這不會算作一個API調用,它的數量仍然相同,因此請注意API的限制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM