Вопрос
Я сделал свой бот IRC, и я столкнулся с проблемой наводнения. Я пытаюсь найти способ разместить сообщения, поэтому, если 10 человек выполняют команду в то же время, это не избывает бота. Как бы я это сделал? Я думал о внедрении очереди, но я не уверен, куда идти после этого.
Я не использую каких -либо фреймворков для этого бота и не хочу переключаться на какую -либо структуру (если это не очень легко).
Решение
Конечно, вы можете использовать очередь.
Позвольте одной ветке поместить вещи в очередь, пусть другой темп из очереди обрабатывает из очереди. Это пример классического Потребитель / Производитель шаблон.
Просто убедитесь, что вы не позволяете своей очереди съесть всю свою память в случае чрезмерного наводнения. (Например, вы можете просто отбросить сообщения, если очередь заполнена.)
Другие советы
java.util.concurrent, вероятно, имеет то, что вы хотите. Исполнитель или просто блокировка, например.