Frage

Ich habe mein IRC-Bot gemacht und ich habe in das Problem der Überschwemmungen führen. Ich versuche, aus den Nachrichten, einen Weg zu Raum, um herauszufinden, so dass, wenn 10 Leute alle einen Befehl zur gleichen Zeit ausführen es den Bot nicht überschüssige Flut der Fall ist. Wie würde ich das tun? Ich dachte an eine Queue Umsetzung, aber ich bin nicht sicher, wo danach zu gehen.

Ich verwende keine Frameworks für diesen Bot noch will ich Schalter auf jeden Rahmen (es sei denn, die extrem leicht).

War es hilfreich?

Lösung

Natürlich könnten Sie eine Warteschlange verwenden.

Lassen Sie einen Thread put Sachen in der Warteschlange, lassen Sie einen anderen Thread Prozess Elemente aus der Warteschlange in einem schönen Tempo. Es ist eine Instanz des klassischen Verbraucher / Produzent Musters .

So stellen Sie sicher, dass Sie lassen Sie sich nicht Ihre Warteschlange alle bei überhöhter Überschwemmungen Ihr Gedächtnis auffressen. (Sie könnte zum Beispiel nur Nachrichten löschen, wenn die Warteschlange voll ist.)

Andere Tipps

java.util.concurrent wahrscheinlich hat das, was Sie wollen. Ein Executor oder nur ein Blocking zum Beispiel.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top