Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1345804953
Wadimka
2012-08-24 14:42
2013.03.22
Подскажите можно ли с консольным приложением..


4-1259316889
Konstantin
2009-11-27 13:14
2013.03.22
поиск новых файлов


15-1338256258
Error macro
2012-05-29 05:50
2013.03.22
Как стать фрилансером?


15-1350906196
Лида
2012-10-22 15:43
2013.03.22
Обработка различных событий в Delphi


15-1346788263
AV
2012-09-04 23:51
2013.03.22
Запретить пользоваться сайтами, кроме явно разрешенных





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский