Привет всем и спасибо за потраченное время!
У меня проблема, я не уверен, как подходить в Java. Допустим, у меня есть пользовательский интерфейс, который создает события, которые должны быть «выполнены» в определенное время в будущем, которое может варьироваться от пары минут в будущем до нескольких дней.
Я имею в виду создание класса (скажем, EventHandler), который реализует Runnable, а затем ConcurrentLinkedList, который хранит эти экземпляры, упорядоченные по времени, когда они должны быть выполнены, от наименьшего заранее к большинству заранее. После этого поток просматривает очередь и, если системное время превышает ожидаемое время выполнения, запустите процесс.
Проблема заключается в том, что помимо проблем параллелизма, связанных со списком, подсматривающий поток потребляет процессорное время. Поэтому мне было интересно, есть ли более элегантное решение, учитывая, что в один интервал времени могут быть запланированы сотни событий. Кроме того, я использую Hibernate с MongoDb для хранения вещей, если это вообще влияет.
Спасибо!
РЕДАКТИРОВАТЬ: Я открыт для всех других решений, о которых вы можете подумать, при условии, что он решает "события очереди и выполняет их в то время, когда они установлены"