Pregunta

he hecho mi bot de IRC y me he encontrado con el problema de las inundaciones. Estoy tratando de encontrar una manera de espaciar los mensajes por lo que si 10 personas en todo ejecutar un comando, al mismo tiempo que no superen un diluvio el bot. ¿Cómo puedo hacer esto? Estaba pensando en la implementación de una cola, pero no estoy seguro de dónde ir después de eso.

No estoy usando o no un marco para este bot ni me quiera cambiar a cualquier marco (a menos que su extremadamente fácil).

¿Fue útil?

Solución

Claro, usted podría utilizar una cola.

Deja un hilo cosas a la cola, deja que otros elementos del proceso de la cola de hilo en un buen ritmo. Es una instancia de la patrón consumidor / productor clásica .

Sólo asegúrese de que usted no deje que la cola se comen toda la memoria en caso de inundación excesiva. (Se podría, por ejemplo, simplemente desechar los mensajes si la cola está llena.)

Otros consejos

java.util.concurrent probablemente tiene lo que quiere. Un ejecutor o simplemente un BlockingQueue por ejemplo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top