Является ли приложение службы Windows правильным подходом - PullRequest
0 голосов
/ 24 июня 2009

В настоящее время у меня есть приложение для Windows, которое автоматизировано и работает ежедневно. цель - получить доступ к веб-сервису для загрузки набора данных и вставки в базу данных sql 2005.

Подходит ли в этой ситуации приложение службы Windows, будет ли оно более гибким и будет ли оно работать лучше.

Ответы [ 4 ]

5 голосов
/ 24 июня 2009

Вы можете определенно иметь это как услугу, но я не думаю, что вы получите какую-либо выгоду от этого. Поскольку служба всегда работает, они обычно используются для приложений, которые должны работать, потому что они постоянно проверяют состояние (ожидая удаленного взаимодействия, проверяя каждые n минут информацию в базе данных и т. Д.).

Так как ваш работает один раз в день, у вас не будет никакого преимущества, если вы измените его. Если ваша автоматизированная задача настроена правильно, она должна работать, если машина включена, как служба. Преимущество наличия приложения Windows (в частности, консоли) над службой заключается в том, что в случае сбоя можно просто запустить приложение снова и запустить его. С сервисом это будет не так просто, потому что в программе должен быть дополнительный код, чтобы он работал только столько раз (в вашем случае один раз) в день. Скорее всего, вы не сможете запустить его при запуске, потому что вам нужно учитывать перезапускаемый сервер. Это означает, что если ваш сервер выходит из строя, когда предполагается, что процесс запущен, вам нужно знать, как «обмануть» программу, думая, что она должна запускать процесс только в течение этого времени. Приложения Window не страдают от этого, потому что они завершаются после завершения процесса, поэтому, вероятно, нет никакого дополнительного кода, который бы препятствовал повторному запуску процесса.

2 голосов
/ 24 июня 2009

Служба Windows позволит вам выполнить задачу, даже если ни один пользователь не вошел в систему. Я бы сказал, что для такой задачи Windows Service более подходит. Однако я сомневаюсь, что произойдет какое-либо улучшение производительности.

1 голос
/ 24 июня 2009

Если он просто должен запускаться один раз в день (или просто периодически), то, по моему мнению, превращение его в услугу является пустой тратой. В большинстве случаев он просто ничего не делает.

В сервисах, в частности, нет ничего, что могло бы улучшить производительность, поэтому я бы рекомендовал просто оставить его как старое приложение и использовать планировщик для его запуска один раз в день.

0 голосов
/ 24 июня 2009

Если вы вставляете данные в SQL Server, тогда вы явно зависите от этого. Я бы исследовал планирование с помощью агента SQL.

В зависимости от ваших требований к обработке вы можете обнаружить, что можете многое сделать с помощью служб интеграции SQL Server (SSIS), которые хорошо документированы относительно планирования работы с SQL Server.

Я знаю, вы упомянули, что уже написали это. Но с агентом SSIS / SQL вы получаете уровень мониторинга «бесплатно», и вы можете обнаружить, что вам не составит труда скопировать ваш текущий код. Кроме того, постоянный администратор базы данных может очень легко поддерживать ваш код без необходимости доступа к исходному коду и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...