Как отслеживать каталог загрузки по FTP в coldfusion без использования шлюзов событий? - PullRequest
0 голосов
/ 24 января 2011

Потратив пару часов на написание решения для шлюза событий, я обнаружил, что они не поддерживаются стандартной версией CF.Buggerit!Итак, вернемся к чертежной доске.

Я вижу, как я могу проверить атрибут dateLastModified папки, используя cfdirectory, и поэтому я могу запустить запланированное задание, чтобы увидеть, когда был загружен новый файл, но как лучше всего это сделать?сохранение / сравнение списка файлов, чтобы получить список только тех, которые были добавлены с момента последней проверки.

Общие советы / ссылки приветствуются

Ответы [ 3 ]

4 голосов
/ 24 января 2011

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

1 голос
/ 24 января 2011

Как отметил @Henry, вы можете использовать шлюз событий.

Если вы решите не использовать этот подход, я бы предложил запланированную задачу ColdFusion.Наиболее надежный алгоритм для этой задачи - сохранять результаты последнего вызова <cfdirectory/> либо в постоянной области - приложении или на сервере - либо записывать их в базу данных или файл (например, WDDX).Причиной сохранения всей этой информации, а не только отметки времени, является обработка ситуаций, в которых вновь добавленные или измененные файлы по какой-либо причине не принимают правильную отметку времени (системные часы отключаются).

Если вы используете базу данных для сбора данных, вы можете использовать запрос MINUS / EXCEPT в SQL Server или Oracle соответственно, чтобы определить, что нового.Иначе вам нужно будет выполнить некоторые вложенные циклы в ColdFusion над старыми новыми запросами, чтобы сгенерировать список новых файлов.

1 голос
/ 24 января 2011

они не поддерживаются стандартной версией CF

Вы все еще используете CF7?Поддерживается CF Standard Edition начиная с CF8

...