1

我有這樣的設置:Firebase是否處理帶有App Engine的Java Server SDK的線程?

客戶< ---->實時數據庫< ---->的AppEngine服務器

的AppEngine上的服務器有servlet的init()方法裏面的一些代碼。

@Override 
public void init(ServletConfig sc) throws ServletException { 
    // Setup Firebase.... 
    firebase.addChildEventListener(..nested SingleValueEventListener..); 
} 

每當客戶端火力點更新的節點,AppEngine上會聽這種變化,並做一些處理和更新一些其他節點。

此設置適用於測試,因爲我是單個用戶。但是,如果有100人使用這個應用程序呢?我保證這個childEventListener會爲每個用戶運行代碼嗎?那些嵌套的SingleValueEventListeners是否也會觸發?

或者我將不得不在每個不同的Firebase請求上創建線程?或者這一切都由Firebase Java Server SDK處理?

此外,是init()方法,放置ChildEventListeners的正確位置,我可以添加像... 10個聽衆在那裏?

回答

0

在應用引擎上,firebase使用後臺線程來偵聽Firebase上的更改。通過添加ChildEventListener,您可以在後臺創建一個新的長時間生存的線程,該線程將爲您處理所有事情,無需擔心並創建新的線程等。無論用戶做了哪些更改(任何用戶你的可以做到)。但是要在應用引擎上使用長時間生存的後臺線程,需要啓用手動縮放,這意味着只有後端的一個實例可以運行。並且它會按照它的功能進行儘可能多的請求,所以您的後端可以處理每秒更改的固定限制。

0

我有一個類似的應用程序正在進行,我們一直在使用它幾個月。我不建議你使用appEngine標準環境,因爲它不準備保持持久連接(我們以這種方式開始)

因此,有時我們失去了與Firebase的聯繫,並且在做了一些研究之後,我們發現這是一個常見問題。解決它的服務器遷移到靈活的環境的唯一途徑

https://cloud.google.com/appengine/docs/flexible/java/migrating-an-existing-app

這是一個測試版,我不知道在未來的定價,但只要它正常工作與我們的應用程序。

希望這可以幫助你!

相關問題