Вопрос

Я сделал свой бот IRC, и я столкнулся с проблемой наводнения. Я пытаюсь найти способ разместить сообщения, поэтому, если 10 человек выполняют команду в то же время, это не избывает бота. Как бы я это сделал? Я думал о внедрении очереди, но я не уверен, куда идти после этого.

Я не использую каких -либо фреймворков для этого бота и не хочу переключаться на какую -либо структуру (если это не очень легко).

Это было полезно?

Решение

Конечно, вы можете использовать очередь.

Позвольте одной ветке поместить вещи в очередь, пусть другой темп из очереди обрабатывает из очереди. Это пример классического Потребитель / Производитель шаблон.

Просто убедитесь, что вы не позволяете своей очереди съесть всю свою память в случае чрезмерного наводнения. (Например, вы можете просто отбросить сообщения, если очередь заполнена.)

Другие советы

java.util.concurrent, вероятно, имеет то, что вы хотите. Исполнитель или просто блокировка, например.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top