Я пишу ruby скрипт для отправки файлов на сервер, как только они будут добавлены в папку.
Прежде всего, al oop в вашем коде (в методе service_main
) перечитывает диск каждую секунду, 24/7. (Это весь день и всю ночь - и по выходным тоже!) Это быстро и неожиданно изнашивает диск вашего клиента. : (
В конечном счете, альтернативой этому плохому способу является запрос Windows 'служб операционной системы для уведомления, когда любой файл в каталоге был изменен.
Вы можете искать следующее:
directory notification windows ruby
Это дает (например) программу WatchDirectory , которую можно запустить как Windows службу .
Лучше использовать готовую программу, потому что ваша команда будет иметь меньше кода для обслуживания.
WatchDirectory может вызывать пользовательский пакетный файл всякий раз, когда что-либо изменяется в целевом каталоге. «Существует также специальный плагин, который может запускать скрипт файла .bat, что дает вам 100% гибкость.» Таким образом, пакетный файл может запустить программу Ruby (которую вы можете написать). Программа Ruby может сравнивать каталог содержимого и выполнения любой другой желаемой функциональности.
Или WatchDirectory может уже включать плагины для всего, что вам нужно (что было бы лучше), без написания (и поддержки) каких-либо Ruby программа. «Задачи выполняются путем запуска плагина. Примером задачи может быть копирование нового файла в другой каталог». (Со страницы справки .)
Это возможно. Опять же, так будет лучше. Помните, что строка не написанного кода - это строка кода, которую не нужно поддерживать.
В качестве альтернативы использованию WatchDirectory вы можете выполнить поиск в Интернете по следующему адресу:
watchdirectory alternatives
One Результатом является страница на сайте AlternativeTo: Альтернативы WatchDirectory (для Windows).
Если вы предпочитаете написать собственный код (создание многоязычного решения с Ruby и немного C ++, вместо использования готовой программы, такой как WatchDirectory), ссылка на некоторый полезный образец кода C ++ от Microsoft (который отслеживает папки) также появилась в результате первого упомянутого мной веб-поиска выше.
Машина MS windows используется многими людьми, поэтому мы не хотим, чтобы кто-либо по ошибке закрывал терминал cmd.
Если вы wi sh для любой (не Windows сервисной) программы, которая всегда скрыта от панели задач (по любой причине), вы можете выполнить веб-поиск следующим образом:
windows program hide
Один результат - Best Ways быстро скрыть приложение Windows s , что дает настраиваемые и, по-видимому, полезные "Windows Hide Tool" и "ClickyGone."