Класс SimpleThreadPool, поставляемый вместе с Quartz Scheduler, не имеет поведения FIFO. Я хочу удостовериться, что если я буду добавлять задания в планировщик, они будут рассмотрены в первом порядке. Есть ли для этого ThreadPool? Или есть ли другой способ достичь этого?Quartz scheduler theadpool
5
A
ответ
5
Вы могли бы добиться этого путем делегирования в ThreadPoolExecutor с очереди FIFO, следующим образом:
public class DelegatingThreadPool implements ThreadPool {
private int size = 5; //Fix this up if you like
private final ThreadPoolExecutor executor = new ThreadPoolExecutor(size, size,
0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>());
public boolean runInThread(Runnable runnable) {
synchronized (executor) {
if (executor.getActiveCount() == size) {
return false;
}
executor.submit(runnable);
return true;
}
}
public int blockForAvailableThreads() {
synchronized (executor) {
return executor.getActiveCount();
}
}
public void initialize() throws SchedulerConfigException {
//noop
}
public void shutdown(boolean waitForJobsToComplete) {
//No impl provided for wait, write one if you like
executor.shutdownNow();
}
public int getPoolSize() {
return size;
}
public void setInstanceId(String schedInstId) {
//Do what you like here
}
public void setInstanceName(String schedName) {
//Do what you like here
}
Вполне возможно, что активный подсчет исполняемых файлов не будет точно соответствовать точное количество задач, которые выполняются. Вам нужно будет добавить защелку и использовать beforeExecute, чтобы обеспечить , что задача запущена, если это необходимо.
Смежные вопросы
- 1. Quartz Scheduler
- 2. Quartz Scheduler и NextFireTime
- 3. Quartz Scheduler Cron Triggers
- 4. Quartz - Restart Scheduler
- 5. Quartz Scheduler, XML ValidationException
- 6. Quartz Scheduler Unresponsive
- 7. Quartz Scheduler в AnnotationConfigApplicationContext
- 8. Quartz scheduler прерывает работу?
- 9. Quartz scheduler job
- 10. Quartz scheduler работает дважды
- 11. Quartz Scheduler - NoClassDefFoundError
- 12. Quartz Scheduler в сервлетах
- 13. Shutdown Quartz scheduler
- 14. Quartz scheduler missing job
- 15. Quartz Scheduler and threads
- 16. Quartz Scheduler/Multiple (Non Clustered) Scheduler Экземпляры
- 17. Quartz Scheduler не работает мгновенно
- 18. java scheduler spring vs quartz
- 19. Quartz scheduler vs setup cron
- 20. Quartz Scheduler Worker Threads Issue
- 21. C# Quartz Scheduler - сброс триггера
- 22. Quartz Scheduler и нити Объединив
- 23. Quartz scheduler ведет себя непоследовательно
- 24. Удаленное подключение к Quartz Scheduler
- 25. Как часто просыпается Quartz Scheduler?
- 26. quartz-scheduler не запускался регулярно
- 27. Quartz Scheduler для тестовой среды не работает
- 28. Передача массива аргументов в Quartz Scheduler
- 29. Quartz Scheduler - пропустить только последний день месяца
- 30. Quartz Enterprise Scheduler: работа, которая сама расписала
Это отличный пример, я попробую это. – Shamik