2014-09-10 5 views
1

내 응용 프로그램은 SFTP에서 파일을 가져 와서 처리를 시작합니다 .5 분으로 설정된 크론 작업이 있습니다 .SUPPOS 파일이 SFTP에 도착했습니다. 풀 작업은 파일을 가져 와서 그 내부에서 레코드 처리를 시작합니다 .Howerver 처리 시간이 5 분이 경과하면 cronjob은 두 번째 파일을 다시 가져 와서 첫 번째 파일을 찾아 처리를 시작합니다.크론 작업 처리

이 상황을 처리하는 방법. 도와주세요.

+1

크론 작업을 중단하지 않으면 프로세스가 처리하기 전에 다른 곳으로 파일을 이동해야한다고 생각합니다. – Leo

+0

이러한 상황을 처리하기 위해 어떤 종류의 플래그가 있어야합니다. 예를 들어'/ tmp/myscript' 파일에 가짜 빈 파일을 만들면 첫 번째 cronjob이 끝나면 제거됩니다. – fedorqui

답변

0

응용 프로그램이 실행되는 간격보다 오래 실행되지 않을 것이라는 확신이 들지 않으면 응용 프로그램에 크론 작업을 사용하지 마십시오. 수면을 사용하십시오! 우리는 당신의 응용 프로그램에 대한 충분한 정보를 가지고 있지 않기 때문에 레오의 제안이 작동하지 않을 수 있습니다 @

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

것은, 그것은 병렬로 여러 번 실행할 수하지 않을 수 있습니다. 그러나 한번 사용해보십시오.

@ fedorqui 님의 제안 또한 좋습니다. 고유 한 임시 파일을 만들거나 pid 파일을 /var/run/*에 넣으려면 mktemp을 사용하십시오.