2012-01-10 4 views
2

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

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

Я видел Drools Planner, но это не подходит, потому что это огромная сложность и накладные расходы.

ответ

1

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

Как я вижу у вас есть 2 варианта:

  • Go для быстрого строительства эвристики, такие как First Fit понижающие: Сортировать задачи по снижению трудности (= число задач они сталкиваются с, ...) и в этом порядке назначьте их на лучшее оставшееся место. Это не будет почти оптимальным, но оно будет быстрым, простым и с низкими накладными расходами.

  • Идём на real-time planning.

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

0

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

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

Техника: 1) алгоритмы эвристической основы - HEFT, вид MINMIN, MAXMIN и т.д ... 2) Мета-эвристические алгоритмы, основанные - генетический алгоритм, Particle Swarm Optimization и т.д ...

или вы можете изобрести новый алгоритм.

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

Смежные вопросы