Работа с Cron Job

1

Мое приложение принимает файлы из SFTP и начинает его обрабатывать. У меня задание cron, которое установлено в 5 минут. Предположим, что файл прибыл в SFTP. Операция pull берет файл и начинает обрабатывать записи внутри него. Более продолжительное время обработки 5 минут cronjob снова вытаскивает второй файл и находит первый файл для обработки и остановки.

Как справиться с этой ситуацией. Пожалуйста помоги.

  • 1
    если вы не можете изменить свою работу cron, чтобы не останавливать ее, то ваш процесс должен переместить файл в другое место перед обработкой, я думаю
  • 0
    У вас должны быть какие-то флаги, чтобы справиться с этими ситуациями. Например, вы можете создать поддельный пустой файл в /tmp/myscript который удаляется после завершения первого cronjob.
Теги:
cron
cron-task

1 ответ

0

Не используйте задание cron для приложений, если вы не уверены, что они никогда не будут работать дольше, чем интервал между их прогонами. Используйте сон!

#!/bin/bash
while true
do
    echo "Press [CTRL+C] to stop.."
    get_files_from_sftp
    process_files
    sleep 5m
done

Предложение @Leo может не работать, потому что у нас недостаточно информации о вашем приложении, возможно, он не может работать несколько раз параллельно. Но попробуй.

Предложение @fedorqui также хорошо. Используйте mktemp для создания уникальных временных файлов или поместите файл pid в /var/run/*.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню