Проект планировщика заданий с отказоустойчивостью и большим объемом исполнения - PullRequest
1 голос
/ 03 июля 2019

У меня есть программа на 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.

...