Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1240201355
Zalum
2009-04-20 08:22
2009.05.31
Запустить одно приложение их другого


15-1238054110
oxffff
2009-03-26 10:55
2009.05.31
StreamSec Garbage Collector


2-1240203801
Индеец
2009-04-20 09:03
2009.05.31
Перегрузка конструкторов


8-1194545729
NaRuTo
2007-11-08 21:15
2009.05.31
Как сделать так чтобы моя диаграмма скакала под бит музыки.


15-1237886380
AlexDan
2009-03-24 12:19
2009.05.31
Подключение Microsoft SQL Server 2005





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский