У меня следующая ситуация: в моем распоряжении несколько сотен ресурсов (ПК/мобильные/умные устройства). Я хотел бы сделать из них сетевую лабораторию, где пользователи могут запрашивать доступ к некоторым или всем этим устройствам, начиная с определенного времени. Я пишу планировщик для этой цели. В запрошенное время я хочу сообщить пользователю, что запрос был удовлетворен, а затем автоматически выполнить некоторые тесты на устройствах. Мне просто интересно, что было бы эффективным способом написать планировщик. На данный момент я подумал о следующем:
Всякий раз, когда приходит запрос, я помещаю его в таблицу базы данных SQL. Я пишу программу, которая постоянно проверяет эту таблицу на наличие заданий, которые должны быть выполнены, и запускаю их. Это будет периодически (скажем, каждые 5 минут), поэтому я не могу запланировать немедленные тесты.
Сохраните объект задания для каждого задания и прикрепите таймер, который срабатывает в указанное время (кажется, наименее масштабируемым).
Гибрид (1) и (2). Я создаю объекты задания с таймерами, запрашивая базу данных с большим интервалом (скажем, 30 минут). В запросе я получаю все задания, которые должны быть выполнены в ближайшие 30 минут или около того.
Есть ли лучший/более чистый способ сделать это?
Большое спасибо за ответы заранее!