Коллеги, привет!
https://github.com/devromik/suspender
Небольшая библиотека на Java, позволяющая:
откладывать произвольные объекты на определённое время, используя путь (строка вида /segment_1/segment_2/…/segment_N) в качестве ключа
получать оповещения о восстановлении объектов
восстанавливать объекты, отложенные по префиксу, до истечения времени откладывания. Префикс — путь, состоящий из нескольких первых сегментов другого пути, расположенных в том же порядке. Объекты, отложенные по префиксу, — объекты, отложенные по путям с данным префиксом
восстанавливать отложенный по префиксу объект с ближайшим временем восстановления
проверять, имеются ли объекты, отложенные по префиксу
восстанавливать все объекты, отложенные по префиксу
concurrent: после того, как Suspender создан и запущен, можно работать с ним из нескольких потоков без ограничений. Реализация с этой точки зрения fine-grained — на практике блокировки удерживаются только на время поиска узла дерева отложенных объектов, соответствующего данному пути
покрыта тестами на 95%
Использовали в паре проектов на работе.
Имеется зависимость от библиотеки slf4j-utils, которой в центральном Maven-репозитории нет. Найти её можно здесь:
https://github.com/devromik/slf4j-utils
Библиотека малюсенькая, при желании можно выпилить, заменив на что-то своё.
pom.xml имеет несколько профилей, которые я обыкновенно использую в своих проектах.
Поэтому, прежде чем собирать, желательно заглянуть в этот файлик.
Более подробное описание библиотеки можно найти в заголовочном комментарии к интерфейсу Suspender.
P. S.: приветствуются вопросы, pull-request-ы, замечания, предложения