LINUX.ORG.RU

Что почитать про планировщики и очереди заданий

 ,


0

4

Возникла тут необходимость на сайте использовать планировщик для выполнения задач, с трудом прикрутил celery, и возник вопрос, а где можно почитать или посмотреть как реализуются планировщики задач. Хочу написать для сайта планировщик задач на QtCore+QtNetwork, но пока не знаю толком с чего начать. Хотя-бы узнать каким методом выполняется запуск задачи в указанное время, может быть через QTimer получется это сделать


Таненбаума же. Ту которая про операционные системы.

pon4ik ★★★★★
()

Linux Kernel Development, 3rd Edition - Robert Love. И параллельно исходники Линупса.

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

Это не они облажались, это лор окончательно скатился на уровень ответовмейлру.

anonymous
()

Ну вот, например, описание работы одного из вариантов Cron'а: https://en.wikipedia.org/wiki/Cron#Multi_user_capability

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

DuMOHsmol
()

Ну или можно совсем просто по таймеру раз в минуту (QTimer) прогонять весь список задач и сравнивать время их наступления с текущим (QDateTime::currentDateTime()). Этот алгоритм похуже, но сомневаюсь, что разница будет заметна :)

DuMOHsmol
()

Если нужен совсем простой планировщик, то он делается так:
1) Хранишь задачи что нужно сделать в куче (priority queue), сортировка по unix time.
2) Заводишь один QTimer на твой дискрет, например 1 секунду.
3) На каждое срабатывание таймера проверяешь вершину кучи, достаешь оттуда задания у которых время <= текущего и отправляешь их на выполнение.
Вот и все, будет работать.

pftBest ★★★★
()
Последнее исправление: pftBest (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.