2014-12-18 6 views
0

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

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

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

Является ли бесконечный цикл единственным способом?

Я думал о том, чтобы сделать это службой Windows, но не нужен ли такой бесконечный цикл?

Благодаря

+0

похоже на http://stackoverflow.com/questions/2032808/how-to-have-a-loop-in-a-windows-service-without-using-the-timer/2033431#2033431 –

+0

Я также рекомендую вы проверяете topshelf. –

+0

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

ответ

0

Две возможности, но каждый зависит от того, что ваши требования.

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

Вторая возможность, может ли этот клиент изгонять из хоста Linux или Unix какого-то типа, а не из Windows? * Операционные системы nix имеют функциональность «cron», которая обеспечивает повторяющиеся задачи вплоть до разрешения одной секунды.

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