Интеллектуальный планировщик задач - PullRequest
0 голосов
/ 10 января 2012

Кто-нибудь знает инструмент для создания оптимальных расписаний для задач? У меня есть множество серверов, работающих с несколькими базами данных, с различными сценариями, которые импортируют и преобразуют данные в каждую базу данных и из нее.

В настоящее время я планирую различные cronjobs вручную, но это подвержено ошибкам и трудно учитывать исключения, например, выполнение задания занимает необычно много времени из-за необычно большой загрузки данных. Я рассматриваю возможность кодирования ресурсов и зависимостей между каждой задачей и создания планировщика для поиска оптимальной последовательности выполнения задач, чтобы каждая задача выполнялась в то время, когда она реже всего мешает другим задачам.

Я видел Drools Planner , но это не подходит из-за огромной сложности и накладных расходов.

Ответы [ 2 ]

1 голос
/ 11 января 2012

Это NP выполнено , поэтому, если вы хотите что-то, близкое к оптимальному, вы не можете избежать определенной сложности и нагрузки на процессор.

На мой взгляд, у вас есть 2 варианта:

  • Перейти к быстрой эвристике построения, такой как Уменьшение первой подгонки : сортировка задач по убыванию сложности (= количество задач, с которыми они сталкиваются, ...)и в этом порядке назначьте им лучшее оставшееся место.Это не будет почти оптимальным, но это будет быстро, просто и с низкими издержками.

  • Перейти к планирование в реальном времени .

Из интереса, какая сложность в Planner вас напугала?

0 голосов
/ 16 января 2018

Задачи планирования поставляются в комплекте с NP-комплектом.Таким образом, не существует единственного алгоритма для получения наилучшего ответа для вас.

Но есть почти оптимальные ответы.

Методы: 1) Эвристические алгоритмы - HEFT, MinMin, MaxMin и т. Д... 2) Метаэвристические алгоритмы - Генетический алгоритм, Оптимизация роя частиц и т.д. ...

или вы можете придумать новый алгоритм.

Я могу поделиться простым кодом, который будет генерировать почти оптимальныйграфик, если хотите.

...