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

Вниз

Прощу помощи разобраться со службой.   Найти похожие ветки 

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

Наверх




Память: 0.56 MB
Время: 0.067 c
15-1334583721
Андреевич
2012-04-16 17:42
2013.03.22
Узнать когда был выход из ждущего режима


15-1344112205
Юрий
2012-08-05 00:30
2013.03.22
С днем рождения ! 5 августа 2012 воскресенье


3-1284466515
beginer
2010-09-14 16:15
2013.03.22
ibserver выгрузить bat-ником


2-1331037518
Scott Storch
2012-03-06 16:38
2013.03.22
перевод кода C


15-1341261002
Юрий
2012-07-03 00:30
2013.03.22
С днем рождения ! 3 июля 2012 вторник