В Java есть коллекция, которую я могу взять элемент только через некоторое время? - PullRequest
2 голосов
/ 27 июня 2011

Я делаю веб-сканер и хочу не перегружать серверы запросами, поэтому я ограничу доступ к серверам временем.

У меня будет объект / коллекция, представляющая собой списокиз ссылок, которые я буду посещать.

Я получаю первую ссылку, и она от Google (пример), посетите и сделайте всю работу.Через 20 секунд я могу взять только другую ссылку от Google (пример), и пока я жду, я получаю ссылки с других доменов.

Подводя итог, мне нужна коллекция, которая позволит мне классифицировать объекты внутри нее иполучать объекты из него через определенные промежутки времени.

Есть что-то подобное?Если нет, какие коллекции рекомендуется использовать при реализации?К этой коллекции будут обращаться различные темы.

1 Ответ

7 голосов
/ 27 июня 2011

Вы можете использовать DelayQueue для этого.Это одновременная коллекция, которая позволяет извлекать из нее элементы только после истечения срока их действия.Элементы, которые вы добавляете, должны реализовывать Задержка .

Возможно, вы просто захотите использовать ScheduledExecutorService .Например, для каждого домена, который вы сканировали, вы можете запланировать задачу, которая получает следующую ссылку, а затем перепланировать другую задачу со следующей ссылкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...