2013-05-21 3 views
2

Так что это мое первое задание с программным созданием служб Windows или запланированных задач, и я смущен, какой из них выбрать. Я имел взгляд на различные статьи, как http://weblogs.asp.net/jgalloway/archive/2005/10/24/428303.aspx, scheduled task or windows service и некоторые другие, но может»т действительно решить btween двухслужбы windows и запланированные задачи

Вот мой сценарий:

Мое приложение подберет код пути нескольких библиотек DLL из db, выполните DLL-файлы, используя MSTest.exe, и верните результаты в Db. это, вероятно, будет повторяться каждые 2-3 часа. Теперь я немного склоняюсь к запланированным задачам, так как мне не придется беспокоиться о проблемах, связанных с памятью, но для этого вам нужны рекомендации экспертов.

P.S. : Библиотеки DLL содержат тестовые методы, которые делают звонки на веб-служб приложений, развернутых на различных серверах

Заранее спасибо за помощь

+1

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

ответ

11

Запланированная задача была бы более для вашего наши правила сценария. Я не думаю, что это имеет большое значение для создания механизма планирования на службе Windows, когда OS уже предоставляет планирование инфраструктуры.

Служба Windows более подходит для процессов, которые должны реагировать на события в любой момент, а не на конкретные и фиксированные периоды. Вот почему они все время работают. Примером этого может служить служба SQL Server.

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

+0

спасибо Клаудио, вот что я думаю. Я не уверен в разрешениях, которые ему нужно выполнить. По моему мнению, для создания задачи мне нужны права администратора и как запустить эту задачу? Кроме того, поскольку учетная запись n/w будет иметь доступ к db и веб-службам, будут ли задачи выполняться правильно под учетной записью сети? Что делать, если я меняю пароль? Просто пытаюсь покрыть мои треки здесь .... – blank

+0

@nikhil: Не обязательно запускать с правами администратора, но для вашего сценария может потребоваться учетная запись с большим количеством разрешений. Для доступа к db и веб-сервисам учетные данные по умолчанию должны быть достаточными при нормальных условиях. –

+0

@ CLAUDIO..что для выполнения задачи, когда пользователь не вошел в систему? Я прочитал, что он сохраняет пароль пользователя для достижения этой функциональности. Будет ли это осуществимо программно? также как обрабатывать несколько экземпляров? для чего задача может занять больше времени, чем ожидалось, и может совпадать с ее временем повторного запуска ... у планировщика есть какая-либо возможность справиться с этим? – blank

0

Хотя это сообщение существует в течение нескольких месяцев, это возможное решение в случае, если оно полезно другим пользователям для запуска «Запустить, был ли пользователь включен или нет»: начать с проекта консоли, а затем изменить тип на приложение Windows, как указано на Run code once and exit formless app: Windows Forms or WPF... does it matter?: «Если вы никогда не показываете пользовательский интерфейс, вы должны начать с проекта WinForms (проекты WPF устанавливают дополнительные метаданные проекта, которые вам не нужны), а затем удалите ссылку на System.Windows.Forms.dll. В качестве альтернативы, начните с проекта консоли, затем измените тип вывода на Windows Application. »

Смежные вопросы