• Как вызвать функцию Python/Django как "триггер"?

    vvpoloskin
    @vvpoloskin
    Инженер связи
    Нужен хук на изменение файлов, при котором будет запускаться внешний скрипт. Вот варианты в порядке увеличения сложности и геморности:
    1) crontab на проверку изменения файла и запуск скрипта
    2) использовать ftp-шник с нужным функционалом запуска внешнего скрипта (pureftpd умеет).
    3) libnotify и отслеживание изменений файловой системы
    4) самопальный отдельный ftp-сервер на том же python-е, который будет обрабатывать только нужные вам соединения. Не так уж и трудно с учетом всяких pyftpdlib, twistd.
    5) обычный ftp-шник с перенаправлением логирования на именованный канал. А этот канал вы будете проверять на наличие строки типа "file xls uploaded" и запускать обработчик.

    Я могу еще придумать кучу решений этой задачи с использование SNMP, различных файловых систем, email-нотификаций (pureftp вроде умеет) но если у вас есть запущенный сайт, то я бы убедил клиента использовать http вместо ftp, а в серверной части вы бы обработали как надо. Ну или после отправки файла на клиентской стороне инициировать http-запрос к вашему сервису после загрузки файла, по которому запускается скрипт.
    Ответ написан
    1 комментарий