Question

J'ai fait mon bot IRC et j'ai rencontré le problème des inondations. J'essaie de trouver un moyen d'espacer les messages si 10 personnes exécutent tous une commande en même temps, il ne excès Recouvrir le bot. Comment puis-je faire cela? Je pensais à la mise en œuvre d'une file d'attente mais je ne suis pas sûr où aller après.

Je ne suis pas à l'aide des cadres pour ce bot et je ne veux passer à tout cadre (à moins que son très facile).

Était-ce utile?

La solution

Bien sûr, vous pouvez utiliser une file d'attente.

Laissez un fil stuff mis sur la file d'attente, laissez un autre des éléments de processus de fil de la file d'attente dans un rythme agréable. Il est une instance de la modèle consommateur / producteur .

Assurez-vous que vous ne laissez pas votre file d'attente manger toute votre mémoire en cas d'inondation excessive. (Vous pouvez par exemple déposer simplement des messages si la file d'attente est pleine.)

Autres conseils

java.util.concurrent a probablement ce que vous voulez. Un exécuteur testamentaire ou tout simplement un BlockingQueue par exemple.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top