запланированная задача или сервис окон

Хороший линейно-разовый алгоритм перестановки перестановка Фишера-Йетса .

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

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

10
задан Jon Seigel 28 March 2010 в 20:52
поделиться

3 ответа

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

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

6
ответ дан 3 December 2019 в 21:22
поделиться

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

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

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

4
ответ дан 3 December 2019 в 21:22
поделиться

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

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

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

  2. Он должен работать как служба Windows.

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

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

  5. Заданиям необходимо иметь возможность копировать файл из источника в целевое местоположение или

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

  7. Скопировать файл из источника в место подготовки, выполнить «обработку», и обработка является конечным результатом.

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

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

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

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

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

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

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

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

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

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

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

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

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

    2
    ответ дан 3 December 2019 в 21:22
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: