LINUX.ORG.RU

Алгоритм запуска заданий по времени


0

0

Здраствуйте. Вот что хочу сделать: есть вектор(массив) заданий. В задании есть поля час, минута, секунда. Пример ч=0, м=5, с =0 . Т.е. запускать каждые 5 минут. Единственное до чего я додумался : хранить еще одно поле последнего времени опроса , и взяв текущее время отнимать от него последнее время опроса и если разница больше или равна чем период опроса то запускать задачу и в поле "последнее время опроса" записывать текущую дату . И т.д. Мне алгоритм кажется "некрасивым" и избыточным. Помогите оптимизировать. Спасибо.

anonymous

зачем так то? ИМХО проще создать некий счетчик - величину его рассчитать в зависимости от частоты запуска процесса - когда он обнуляеться пускаешь процесс и снова выставляешь счетчик и не надо хранить последнее время запуска.

alphex_kaanoken ★★★
()
Ответ на: комментарий от anonymous

Глядел :( исходники cron'a . Честно, непонял каким он способом запускает.

anonymous
()
Ответ на: комментарий от alphex_kaanoken

С счетчиком то же самое примерно будет, для каждого задания прийдется иметь свой счетчик. А это неэкономно.

anonymous
()
Ответ на: комментарий от anonymous

>С счетчиком то же самое примерно будет, для каждого задания прийдется иметь свой счетчик. А это неэкономно.

а по другому как? не конечно можно к примеру брать время и смотреть - допустим каждые пять минут надо запукать процесс - следовательно и запускаешь в 0 5 10 15 и тд минут - ф-ция что это высчитывает довольна простая - другой метод предложить не могу.

alphex_kaanoken ★★★
()

может очередь с приоритетами тебе нужна?

dilmah ★★★★★
()
Ответ на: комментарий от anonymous

Счётчик

> С счетчиком то же самое примерно будет, для каждого задания прийдется иметь свой счетчик. А это неэкономно.

А вы сосчитайте количество информации, необходимое для хранения текущего состояния. В любом случае придётся для каждого процесса хранить либо счётчик либо время последнего запуска. Разумеется, это если процессы запускаются совершенно независимо друг от друга. Если между моментами их запуска есть какая-либо связь, например, общая точка "ноль", то количество необходимой информации уменьшается.

DKorolkov
()
Ответ на: комментарий от anonymous

а крон вроде не ровно через 5 или еще сколко минут работает, а в 12:15,12:20, по крайней мере у меня он так работает

no1sm ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.