Как бы я написал этот клиент мыла ftp клиента в Ruby? - PullRequest
1 голос
/ 05 апреля 2009

У меня есть проект, который я скоро начну, и подумал, что было бы интересно написать его на Ruby. Вот основные требования:

  1. Должен запускаться как фоновый процесс
  2. Будет работать весь день
  3. Процесс должен находиться в спящем режиме 10 секунд, а затем проверить наличие файлов на 6 разных серверах ftp.
  4. С 4-х серверов, просто заберите файлы, затем ftp на другой сервер в нашей сети
  5. С 2-х серверов проанализируйте данные и отправьте их в веб-службу на основе мыла .net
  6. Регистрация того, что было получено и отправлено в ежедневный файл журнала или базу данных

Я могу использовать сервер Linux или Windows. Как вы думаете? Это выполнимо в Ruby или я должен просто придерживаться .net? Могу ли я иметь несколько потоков для каждого сервера, который мне нужно проверить? Как бы я запустил это как сервис?

Ответы [ 2 ]

1 голос
/ 05 апреля 2009

Я бы сделал это с Windows Workflow Foundation. Вы можете легко создать рабочий процесс, который проверяет различные FTP-серверы параллельно. Вся активность проверки серверов FTP может выполняться многократно (навсегда), спя 10 секунд. Вы даже можете использовать функцию отслеживания, чтобы вести глобальную регистрацию, чтобы не нужно было выполнять отдельные действия.

Рабочий процесс можно легко запустить в службе. Просто создайте сервис в Visual Studio, переопределите событие OnStart и используйте его для совместной настройки хоста рабочего процесса (для ведения журнала), а затем просто запустите рабочий процесс.

0 голосов
/ 05 апреля 2009

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

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