2013-05-16 3 views
6

In meiner App ich dynamisch neue pubsub Kanäle erstellen und es könnte zu viele wie 5k pro Tag sein. Je nach den Anforderungen meiner App wird jeder Kanal für maximal 5 Minuten genutzt.Redis: wie (oder sollte) ich pubsub Kanäle löschen

Angesichts dieser Situation werden Tausende von nicht verwendeten Kanälen in der App in einer Woche vorhanden sein. Wie kann ich nicht verwendete Kanäle löschen oder sogar löschen? Speichern sie im Speicher? Was passiert mit den Nachrichten, die über sie veröffentlicht werden? Bleiben sie im Gedächtnis der Wiederentdeckung?

danke

+0

Nach "den 5 Minuten" sendet Ihre App einen 'UNSUBSCRIBE' Befehl? – byterussian

+0

Meine Clients sind Web-Clients über socket.io, so dass der Endbenutzer die Browser-Registerkarte plötzlich schließen kann und ich nicht weiß, ob er noch verbunden ist oder nicht. Vielleicht könnte ich damit umgehen, indem ich die socket.io-Timeouts oder etwas anderes abfange, aber die Hauptsache ist, dass garantiert ist, dass das "ABMELDEN" aller Teilnehmer dazu führt, dass der Kanal gelöscht wird? – destan

+0

Nicht sicher, versuche es. Ich erinnere mich, dass wenn ein Kanal keine Abonnenten hat, gelöscht wird. Für das Nachrichtenproblem, nachdem die Nachrichten gesendet wurden und empfangen werden, existiert sie nicht mehr. – byterussian

Antwort

10

Kanäle sind ambient. Sie existieren nur, solange es Abonnements gibt. Also: entweder [P] UNSUBSCRIBE von den abonnierten Verbindungen anrufen oder die Verbindungen schließen, die abonniert haben.

+0

danke für die Antwort, können Sie eine Quelle angeben, um dies anzuzeigen? Ich konnte solche Details in den Dokumenten nicht finden. – destan

+1

@destan können Sie "info stats" vor und nach (was beschreibt die Anzahl der Abonnements) messen - nahe genug? Oder Sie könnten die Quelle lesen? Aber im Grunde weiß ich, "mit den Autoren zu sprechen" - Lo Tech fürchte ich –

Verwandte Themen