Планирование задачи на основе даты и времени - PullRequest
0 голосов
/ 24 июня 2011

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

Пользователь также может планировать потоковую передачу на некоторое время в будущем. Каждая задача имеет идентификатор задачи.Задание запланировано на основе следующего параметра даты и времени.

время начала
время окончания
повтор (каждый день, только один раз, определенный день)
дата начала
конецдата

Теперь на шлюзе мне нужно добавить логику в задачу «Реализация расписания».

Я исследую объекты «Таймер ожидания» и CreateWaitableTimerEe.Я немного сбит с толку, можно ли реализовать эту функцию с помощью этого.

Я использую C ++, MFC и не могу использовать стороннюю библиотеку.

Мне нужно предложение, как это реализовать.

Ответы [ 2 ]

0 голосов
/ 24 июня 2011

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

В базовом проекте я бы создал дополнительное поле под названием «время следующего запуска», которое будет рассчитываться с использованием времени начала, частоты и предыдущего (если есть) времени окончания.Затем я бы выбросил все задачи в очередь, отсортированную по этому полю.

Главное расписание подберет первый элемент очереди и создаст приостановленный поток для этой конкретной задачи.Теперь просто вычислите разницу во времени для следующего времени первого элемента и спите для этого периода времени.Когда вы проснетесь, просто возобновите поток, выберите следующий элемент очереди и повторите.

0 голосов
/ 24 июня 2011

Я бы просто создал цикл обратного вызова потока таймера, который проверяет время каждую минуту и ​​выполняет вашу задачу по указанному расписанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...