Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.05.31;
Скачать: CL | DM;

Вниз

Алгоритм работы планировщика   Найти похожие ветки 

 
_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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.013 c
11-1201248747
Bytes
2008-01-25 11:12
2009.05.31
не могу запустить проект


2-1239804244
Xoluay
2009-04-15 18:04
2009.05.31
символьный массив


15-1237592324
Kerk
2009-03-21 02:38
2009.05.31
Посоветуйте чего посмотреть


15-1238582348
Лёша
2009-04-01 14:39
2009.05.31
Это можно сократить?


15-1237877089
{RASkov}
2009-03-24 09:44
2009.05.31
Настройка сетевого принтера