У меня есть следующий проект:Java ScheduledExecutorService производителя потребитель
Spring (3.2) основа веб-приложение (Tomcat 7), в фоновом режиме, у меня есть несколько задач.
У меня есть очередь с некоторой информацией для обработки. Эта очередь периодически обновляется (но только когда она пуста).
Также у меня есть несколько потоков, которые периодически выдают данные из этой очереди и процесса.
Для планирования я хотел использовать ScheduledExecutorService.
У меня есть несколько проблем \ вопросов:
Как сохранить эту очередь? По-моему, это должно быть глобальным. Должен ли я сделать его статическим в каком-то классе «держатель»? Не будет ли это плохой настрой?
Где будет место для инициализации этой очереди и всей задачи с помощью ScheduledExecutorService? Является ли ServletContextLoadingListener хорошим местом для этого? Есть ли способы начать это с Spring?
Должен ли я использовать несколько экземпляров ScheduledExecutorService, если мне нужно точно контролировать количество потребительских потоков?
Будет ли ArrayBlockingQueue хорошим для этого случая?
Спасибо, около 4-го пункта, мне нужно иметь обновляемую очередь с некоторым количеством данных для обработки рабочими потоками, так как я понимаю, что DelayedWorkQueue находится внутри ScheduledExecutorService, и это для рабочих потоков, которые я отправляю туда. –