Форум: "Начинающим";
Текущий архив: 2009.05.31;
Скачать: [xml.tar.bz2];
ВнизАлгоритм работы планировщика Найти похожие ветки
← →
_serfer_ (2009-04-16 12:50) [0]Здравствуйте, мне необходимо в своей программе сделать небольшой планировщик задач. Использовать встроенный в Windows не могу, т.к. не могу быть уверен что администратор на машинке, где будет стоять программа не отключит данный сервис в Windows, да и не совсем он мне подходит, т.к. хотелось бы запускать или не запускать определенные процедуры в зависимости от наступления определенного момента времени + разные критерии, как то например, наличие файла или установка определенного признака
Вот :)
Но никак не могу придумать красивый алгоритм слежения за временем и запуска процедур по времени. Можно конечно использовать TTimer например динамически (на каждую задачу в отдельном потоке) создать свой таймер и зарядить его на определенное время, но мне кажется что это будет не совсем правильный подход.
Подскажите, как лучше и правильнее будет сделать данную задачу?
← →
Сергей М. © (2009-04-16 12:55) [1]
> не могу быть уверен что администратор .. не отключит данный сервис
Но при этом ты почему-то непокобелимо уверен, что тот же администратор лояльно отнесется ко "включенности" твоего "планировщика")..
← →
clickmaker © (2009-04-16 12:57) [2]> Можно конечно использовать TTimer например динамически (на
> каждую задачу в отдельном потоке) создать свой таймер
зачем несколько? Один таймер, настроенный на минимальное время из всех задач, с проверкой: не наступило ли время для очередной
← →
Anatoly Podgoretsky © (2009-04-16 13:35) [3]
> Подскажите, как лучше и правильнее будет сделать данную
> задачу?
Правильнее будет написать системные требования к программе.
← →
ford (2009-04-16 13:36) [4]
> Но при этом ты почему-то непокобелимо уверен, что тот же
> администратор лояльно отнесется ко "включенности" твоего
> "планировщика")..
он не сможет, т.к. знает что эта программа должна работать,
т.е. если он отключит сервис винды, это его проблеммы Ж) как администратора но если он отключит программу, то это будет действительно его Проблеммой :)
для чего я хочу использовать собственный планировщик, чтобы абстрагироваться от прихоти администратора, он администратор вот пусть и администрирует что может
а с моеё задачей либо выключить её либо включить (ну примерно так)
← →
ford (2009-04-16 13:38) [5]
> Правильнее будет написать системные требования к программе.
пробовал :)
писал :)
до одного места дверца
наверняка втречались с таким типом "админов"
← →
Anatoly Podgoretsky © (2009-04-16 13:45) [6]> ford (16.04.2009 13:38:05) [5]
Мало ли с кем я встречался, есть системные требования, без которых работа невозможна. И пусть администратор решает нужна программа или нет, но не ты и так самоуверено.
← →
Сергей М. © (2009-04-16 13:53) [7]
> если он отключит сервис винды, это его проблеммы
> если он отключит программу, то это будет ..его Проблеммой
Ну и какая разница ?
Что так что эдак - все равно проблема)
Или твоя программа помимо дублирования функц-ти штатного планировщика что-то еще полезно-потребное будет делать ?
← →
Сергей М. © (2009-04-16 14:05) [8]Можно же поступить еще проще - реализовать свою программу как (или в т.ч. ка) сервис и поставить его зависимым от сервиса штатного планировщика.
Т.е. при старте твоего сервиса системный сервис-менеджер в соответствии с зависимостью пытается прежде поднять сервис планировщика, если тот на этот момент не поднят (остановлен или совсем отключен). И при неудачной попытке кричит админу плохие слова. Если же админ в ходе работы обоих сервисов вдруг захочет остановить сервис сист.планировщика, то опять же системный сервис-менеджер поставит админа перед фактом : если ты сейчас остановишь штатный планировщик, то перед этим в обяз.порядке будет остановлен такой-то сервис
← →
ford (2009-04-16 15:43) [9]
> Сергей М. © (16.04.09 14:05) [8]
круто :)
еще пистолет или мыло с веревкой мне взять
ибо я такое буду писать полгода :))
не хочется лезть в такие дебри
хочется просто сделать свой небольшой планировщик
и поставить админа перед фактом либо программа работает либо нет
> Или твоя программа помимо дублирования функц-ти штатного
> планировщика что-то еще полезно-потребное будет делать ?
>
я же писал в вопросе :)
> хотелось бы запускать или не запускать определенные процедуры
> в зависимости от наступления определенного момента времени
> + разные критерии, как то например, наличие файла или установка
> определенного признака
в принципе и имелось ввиду что мало того что по времени надо что то делать
но есть еще разные критерии по которым надо запускать определенные процедуры
ну например при появлении файла в какойто из папок надо его заархивировать и переписать в другую, и при этом добавить запись в БД
(например)
← →
Anatoly Podgoretsky © (2009-04-16 15:47) [10]> ford (16.04.2009 15:43:09) [9]
> ну например при появлении файла в какойто из папок надо его заархивировать и переписать в другую, и при этом добавить запись в БД
Здесь планировщик не нужен.
← →
ford (2009-04-16 15:53) [11]
> Anatoly Podgoretsky © (16.04.09 15:47) [10]
никто и не спорит что тут не нужен планировщик работающий только по времени
вопрос какраз таки встал на задачах которые должны запускаться по времени
хотелось узнать какие у народа идеи, по реализации алгоритма планировщика
кроме использования TTimer в одном потоке ,т.к. это решение само собой напрашивается
← →
clickmaker © (2009-04-16 15:58) [12]> кроме использования TTimer в одном потоке
а чем эта идея не нравится?
← →
Anatoly Podgoretsky © (2009-04-16 15:58) [13]> ford (16.04.2009 15:53:11) [11]
TTimer в потоках не требуется.
← →
DVM © (2009-04-16 16:05) [14]
> _serfer_ (16.04.09 12:50)
Читай тут: http://www.delphikingdom.com/asp/viewitem.asp?catalogid=434
"Таймер который не подведет"
Попутно с таймером там фактически делается планировщик, который принимает задания в очень удобном формате CRON
← →
ford (2009-04-16 16:34) [15]
> DVM © (16.04.09 16:05) [14]
спасибо друг!!
ну хоть кто-то не стал вдаваться в подробности зачем да почему :)
а просто подсказал где можно поискать
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.05.31;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.004 c