У меня есть программа на Java, которая постоянно проверяет запланированное задание и выполняет его.
Количество запланированных заданий за раз может быть в около 1000 .
Как и во время 21:30
, запланировано 1000 различных заданий, а к следующему 21:31
еще 700 различных заданий.
В четырехъядерном процессоре 4 потока могут выполнять задание параллельно.
В основном моя программа не может выбрать и выполнить все задания , и к тому времени, когда в систему поступит следующий набор заданий.
Из-за этого количество отложенных заданий увеличивается и продолжает добавляться .
В моем проекте я сохраняю отложенные задания в таблице базы данных и в следующий раз забираю любой поток, доступный.
Внутри моей работы он в основном выполняет интенсивные работы. Могу ли я сохранить больше потоков, чем в ядре процессора, как IO intensive
?
Я сохраняю статус задания в таблице БД, как показано ниже,
---------------------------------------------
JOB | TIME | STATUS
--------------------------------------------
J1 | 21:21 | Waiting
J2 | 21:21 | Waiting
J3 | 21:21 | Running
J4 | 21:21 | Running
J5 | 21:22 | Waiting
У меня есть рабочие процессы в последовательности, мой дизайн fault tolerant
?
Есть ли шанс, что работа будет пропущена?
Есть ли какие-либо рамки или дизайн для ссылки?
Большая часть моего кода находится в планировщике java
, vert.x
, quartz
.