Ich habe einen Knoten Arbeiter entlang meiner Seite auf Heroku, die auf bestimmte Pfade in meiner Firebase-Datenbank überwacht. Das Problem ist, dass das Anhören dieser Pfade sehr viel Speicherplatz in Anspruch nimmt. Wenn ich für Änderungen auf einem Pfad wie unten mit 13000 Einheiten auf sie zu hören, nimmt, wenn 147mb Gesamtspeicher auf meinem Heroku Server:Firebase-Listener verbrauchen viel Speicherplatz
setInterval =>
@ref.log_memory('Listener interval')
, 1000
@ref.firebaseClient.child('listings').on 'child_changed', (snap) =>
@ref.log('child_changed')
Ausgang:
22:39:07 worker.1 | info: Memory: 35mb total - 66mb rss - 23mb heapUsed
22:39:08 worker.1 | info: Memory: 36mb total - 67mb rss - 18mb heapUsed
22:39:09 worker.1 | info: Memory: 37mb total - 69mb rss - 23mb heapUsed
22:39:10 worker.1 | info: Memory: 54mb total - 72mb rss - 25mb heapUsed
22:39:11 worker.1 | info: Memory: 54mb total - 82mb rss - 33mb heapUsed
22:39:13 worker.1 | info: Memory: 147mb total - 186mb rss - 94mb heapUsed
22:39:14 worker.1 | info: Memory: 147mb total - 186mb rss - 94mb heapUsed
22:39:15 worker.1 | info: Memory: 147mb total - 186mb rss - 94mb heapUsed
22:39:15 worker.1 | info: child_changed
22:39:16 worker.1 | info: Memory: 147mb total - 186mb rss - 95mb heapUsed
22:39:17 worker.1 | info: Memory: 147mb total - 186mb rss - 95mb heapUsed
Wenn es normal, dass Firebase würde so viel Speicher für einen Pfad aufnehmen, auf den er hört? Ist es, weil es alle Einzelteile im Weg holt und jedes Einzelteil hört? Gibt es eine Möglichkeit, dies zu umgehen?
Danke für die schnelle Antwort. Ich denke, die Antwort ist, dass das Abhören großer Datenmengen in Ihrer Firebase-Datenbank eine schlechte Idee ist. Ich mache es, weil ich bestimmte Teile meiner Firebase-Daten mit Algolia synchronisieren muss, so wie sie es hier tun - http://scottksmith.com/blog/2014/12/09/algolia-real-time-search -with-firebase/- wo sie auf einem bestimmten Pfad zuhören und das mit Algolia synchronisieren. Also ist das nicht der richtige Weg? –
Einige 10K Elemente sind auf den Firebase-Servern selten ein Problem, aber anscheinend hat Ihr Heroku-Server ein Problem mit der Speichernutzung. Es hängt alles von Ihrem Anwendungsfall ab, weshalb ich lieber beschreibe, wie die Dinge funktionieren. –