Nano Hash - криптовалюты, майнинг, программирование

Служба Windows против простой программы

Позвольте мне рассказать всем, прежде чем я перейду к своей проблеме. Моя компания размещает веб-сайт для многих клиентов, моя компания также заключает контракт на выполнение некоторых работ с другой компанией. Поэтому, когда мы впервые настраиваем веб-сайт со всей информацией для наших клиентов, мы передаем эту информацию другой компании, с которой мы заключили контракт, и у троих из нас есть те же данные. Проблема в том, что после того, как сайт будет запущен, наши клиенты изменят некоторые данные, и когда они это сделают, мы сможем обновить нашу контрактную компанию. Мы передаем данные подрядной компании с помощью веб-службы (httppost, данные xml). Теперь мой вопрос заключается в том, как лучше всего написать программу, которая будет отправлять обновленные данные подрядной компании каждый раз, когда наши клиенты изменяют некоторые данные.

1) Напишите службу Windows с таймером внутри моего кода, где каждые 30 минут или около того подключается к базе данных, находит все изменения и отправляет их контрактной компании 2) Напишите тот же код, что и # 1 (без таймера в нем), но на этот раз сделайте это простой программой и позвольте планировщику Windows будить ее каждые 30 минут 3) Любое другое предложение, которое может у вас быть

Доступные мне технологии: VS 2008, SQLServer 2005.


  • Спросите у третьей стороны, как и с какой периодичностью они хотят получать данные. 24.03.2011
  • Вы спрашиваете, в основном службы Windows по сравнению с запланированными задачами. См. stackoverflow.com/questions/390307/ 24.03.2011

Ответы:


1

Запланированное задание - это то, что нужно. Джон написал хорошее резюме, почему сервисы не подходят для такого рода вещей: http://weblogs.asp.net/jgalloway/archive/2005/10/24/428303.aspx

24.03.2011
  • действительные моменты, однако у меня было много проблем с работой с планировщиком задач Windows, без сохранения учетных данных, задач, которые не выполнялись после перезагрузки и т. д., в целом могут потребоваться некоторые усилия, чтобы все работало гладко. Не говоря уже о том, что у него разные параметры конфигурации для разных версий Windows. Мне нравится это с сервисом, у меня есть полный контроль над тем, как работает мое приложение, и я могу использовать что-то вроде Quartz.NET, чтобы делать то, что я хочу. 25.03.2011

  • 2

    Сервис легко создать и установить, и он более «профессиональный», так почему бы не пойти по этому пути? Конечно, также можно использовать не служебный EXE, и его будет немного легче запустить (разрешения и т. Д.), Но я думаю, что разница в настройке между ними почти незначительна.

    24.03.2011

    3

    Одно из возможных решений - добавить столбец с отметкой времени в таблицы данных.

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

    24.03.2011

    4

    Служба Windows более автономна, и вы можете легко настроить ее на автоматический запуск при запуске ОС. Вам также может потребоваться создать дополнительные параметры конфигурации, а также способ немедленно запустить синхронизацию. Это также даст вам больше возможностей для расширения функциональности услуги в будущем.

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

    Если вам нужен более профессиональный подход, воспользуйтесь услугой, даже если это может означать немного больше работы.

    24.03.2011

    5

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

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

    OR,

    С помощью службы Windows вы настраиваете ее на автоматический запуск и забываете о ней. Когда машина перезагружается, ваша служба запускается и продолжает обработку.

    Еще одно соображение: что происходит, когда возникает ошибка? Приложение Windows, скорее всего, покажет диалоговое окно с ошибкой и дождется ввода, прежде чем продолжить; тогда как служба регистрирует ошибку в журнале событий и продолжает работу.

    24.03.2011
  • Когда приложение запускается как запланированная задача, первая проблема (перезапуск) почти исчезает, а вторая (диалог смерти из-за ошибки) вообще никогда не должна существовать, если программа была написана для выполнения этой задачи. . 25.03.2011
  • Вы также можете сделать обычное приложение для записи в журнал событий, это не должно быть решающим фактором в этом случае. 25.03.2011
  • @cHao @Can Gencer Я слышал, правильно написанные приложения не должны этого делать, но я видел это раньше на собственном опыте. Пришлось одну из них переписать как сервис;) 25.03.2011
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..