Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизПрощу помощи разобраться со службой. Найти похожие ветки
← →
Dennis I. Komarov © (2012-06-19 16:12) [40]
> DVM © (19.06.12 15:53) [39]
Если все будет прибито, кто к объекту обращаться будет для AV?
← →
KSergey © (2012-06-20 11:06) [41]
> Lamer6666 (17.06.12 11:25) [12]
> Ну в целом задача такова:
> Каждые пол минуты необходимо опрашивать БД или файл с данными.
> Если есть новые данные, то отправлять GET запрос на добавление
> этих данных стороннему WEB серверу.
Я такие задачи решаю написание обычной консольной программы (можно и не консольной, конечно, а обычной, с GUI, но смысла в тут GUI нет никакого). Эта программа делает все полезное (прочитать, отправить и т.д.).
Через sheduler windows (который "назначенные задания" в русской виндовс называется) настраиваю запуск этой программы с нужной периодичностью. Все, никаких сервисов не нужно.
Основным плюсы вижу следующее. Стабильность работы такой конструкции получается существенно выше, т.к. даже если программа грохнулась - в следующий раз она все равно запустится и, возможно, даже отработает корректно. Т.е. требования к требуемому качеству существенно ниже, соответственно структура и написание такой программки - несоизмеримо проще.
Время запуска ставим в значение "при включении компьютера" - тогда будет молотить круглосуточно. Правда чаще 1-го раза в минуту запуск настроить нельзя.
← →
Lamer6666 (2012-06-20 13:06) [42]
> А вот если ты создашь (и уничтожишь потом соотв-но) таймер
> в OnExecute, то работать он будет именно в доп.потоке.
Таймер или событие таймера?
А в чем проблема если он будет работать в основном потоке? Простите уж меня непонимающего!!!!
← →
Lamer6666 (2012-06-20 13:18) [43]
> Я такие задачи решаю написание обычной консольной программы
> (можно и не консольной, конечно, а обычной, с GUI, но смысла
> в тут GUI нет никакого). Эта программа делает все полезное
> (прочитать, отправить и т.д.).
> Через sheduler windows (который "назначенные задания" в
> русской виндовс называется) настраиваю запуск этой программы
> с нужной периодичностью. Все, никаких сервисов не нужно.
>
Тоже вариант, но нужна служба. Спасибо за вариант ))
← →
KSergey © (2012-06-20 14:01) [44]Всяким говном инет заполнен, а нормальной статьи про то, как устроены сервисы в виндах - нету...
А ведь когда-то я находил, когда сервис надо было состряпать, причем по-русски.
← →
Lamer6666 (2012-06-20 14:08) [45]
> Всяким говном инет заполнен, а нормальной статьи про то,
> как устроены сервисы в виндах - нету...
И о том же... ((((((((((
← →
KSergey © (2012-06-20 14:20) [46]> Lamer6666 (20.06.12 14:08) [45]
Но вы поищите.
Причем советую не про дельфи искать/читать. Организация работы сервиса - она ж от дельфи не зависит.
← →
Dennis I. Komarov © (2012-06-20 15:01) [47]
> Таймер или событие таймера?
>
> А в чем проблема если он будет работать в основном потоке?
> Простите уж меня непонимающего!!!!
Он не будет там работать, как его не "кидай на форму"... Да забудь ты про таймер.
И основной поток службы для управления ею. Не лезь туда с логикой. Создал там поток, и пусть он делает все что надо...
← →
Сергей М. © (2012-06-20 15:08) [48]
> Таймер или событие таймера?
Это два неразрывных понятия.
> в чем проблема если он будет работать в основном потоке?
Проблема, если ее и нет сейчас, обязательно будет когда юзер сперепугу-сбодуна или по незнанию отключит опцию взаимодействия твоего сервиса с рабочим столом.
Ограничить его в этом ты заведомо не сможешь, если у того админ.права, - и получишь ты в результате со своим оконным таймером в осн.потоке большущие граблищи.
← →
KSergey © (2012-06-20 15:18) [49]Ну вот же например пример сервиса именно на дельфи, где раз в заданное количество секунд тупо запускается нужный код.
http://www.tolderlund.eu/delphi/service/service.htm
Задержка на одну секунду тупо на Sleep. Достаточно подкрутить там интервал.
← →
Dennis I. Komarov © (2012-06-20 15:53) [50]
> KSergey © (20.06.12 15:18) [49]
Вешать логику в OnExecute без особой нужности - большая бяка.
← →
Lamer6666 (2012-06-20 16:26) [51]
> Ну вот же например пример сервиса именно на дельфи, где
> раз в заданное количество секунд тупо запускается нужный
> код.
> http://www.tolderlund.eu/delphi/service/service.htm
>
> Задержка на одну секунду тупо на Sleep. Достаточно подкрутить
> там интервал.
Урааа наконец то хоть что то.....
Огромное спасибо!!!
← →
Давайте будем жрать! (2012-06-20 16:28) [52]
> юзер сперепугу-сбодуна или по незнанию отключит опцию взаимодействия
> твоего сервиса с рабочим столом
Так в висте и выше эта фигня отключена вообще.
← →
Сергей М. © (2012-06-20 21:20) [53]
> Dennis I. Komarov © (20.06.12 15:53) [50]
По мне так большей "бякой" будет плодить доп.потоки "без особой нужности", с учетом того факта что система автоматически снабжает каждый стартующий сервис минимум одним доп.потоком, который совершенно бестолку простаивает в ожидании крайне редко адресуемых ему системой команд.
Страницы: 1 2 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.065 c