Domanda

Ho fatto il mio IRC bot e ho incontrato il problema delle inondazioni. Sto cercando di capire un modo per distanziare i messaggi quindi se tutto 10 persone eseguono un comando allo stesso tempo non eccedente alluvione bot. Come faccio a fare questo? Stavo pensando di attuare una coda, ma non sono sicuro di dove andare dopo.

Non sto utilizzando qualsiasi framework per questo bot né voglio di passare a qualsiasi quadro (a meno che il suo estremamente facile).

È stato utile?

Soluzione

Certo, si potrebbe utilizzare una coda.

Lasciate un thread mettere roba sulla coda, lasciare che un altro gli elementi di processo filo dalla coda in un bel ritmo. E 'un esempio del modello del consumatore / produttore classica .

Basta fare in modo che non si lascia la coda di mangiare tutta la memoria in caso di alluvione eccessiva. (Si potrebbe per esempio solo cadere messaggi se la coda è piena.)

Altri suggerimenti

java.util.concurrent ha probabilmente quello che volete. Un esecutore o solo un BlockingQueue per esempio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top