Запланированное задание или служба Windows

У моей команды есть дебаты, которые лучше: служба Windows или запланированные задачи. У нас есть сервер, предназначенный для выполнения заданий, и в настоящее время все они запланированы. Некоторые задания берут файлы, переименовывают их и помещают в другие каталоги в сети. Другие задания извлекают данные из SQL, изменяют их и отправляют в другое место. Другие задания ftp файлов. Существует много разнообразия, но в целом они довольно просты.

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

Ответ 1

Если он работает постоянно - служба Windows.

Если он должен выполняться с различными интервалами - запланированная задача.

Ответ 2

Запланированная задача -

  1. Когда действие должно выполняться в каком-то фиксированном/предопределенном расписании.
  2. Требуется меньше памяти и ресурсов ОС. li >
  3. Не требуется установка.
  4. Он может иметь пользовательский интерфейс (например, отправить письмо с напоминанием по умолчанию)

Служба Windows -
  1. Если требуется постоянный мониторинг.
  2. Это делает OS занятым, потребляя больше.
  3. Требовать установку/удаление во время меняя версию.
  4. Совсем нет интерфейса (например, обрабатывайте почту, как только она поступит)

Используйте их с умом

Ответ 3

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

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

Я думаю, что он изобретает колесо

Ответ 4

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

Это часть нашего документа requirments для нашей целевой программы, чтобы дать вам представление о том, с чего начать:

  • Эта программа должна управляться базой данных.

  • Он должен запускаться как служба Windows.

  • Программа должна иметь возможность обрабатывать "задания" следующим образом:

  • Задания должны иметь возможность проверять наличие исходного файла и принимать меры на основе существования или отсутствия исходного файла. (я продолжу обработку, vs сообщит, что файл отсутствует там, и игнорирует его, потому что не имеет значения, что файл там отсутствует.

  • Вакансии должны иметь возможность копировать файл из источника в целевое местоположение или

  • Скопируйте файл из источника в промежуточное место, выполните "обработку", а затем скопируйте либо исходный файл, либо результат "обработки" в целевое местоположение или

  • Скопируйте файл из источника в промежуточное место, выполните "обработку", и обработка будет конечным результатом.

  • Источники и получатели, которые могут копировать задания, могут быть разрозненными: UNC, SFTP, FTP и т.д.

  • "Обработка", может быть, шифрование/дешифрование файла, анализ файла данных для правильного формата, подача файла на мейнфрейм посредством эмуляции терминала и т.д., обычно реализуемый путем вызова параметров передачи командной строки в .exe

  • Работы должны быть в состоянии очистить после себя, по мере необходимости. т.е. удалять промежуточные или исходные файлы, копировать файлы в место архива и т.д.

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

  • Задания должны быть настроены на активацию в определенное определенное время или через определенные промежутки времени (необязательно в определенные часы работы), т.е. каждые 15 минут с 9:00 до 5:00.

  • Для добавления новых заданий должен быть пользовательский интерфейс.

  • Для активации задания необходимо нажать кнопку, чтобы активировать ее.

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

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