我的应用程序从SFTP获取文件并开始处理它。我有一个cron作业,设置为5分钟。假设文件到达SFTP,拉取操作获取文件并开始处理其中的记录.Howerver处理时间是5分钟后,cronjob再次拉出第二个文件并找到要处理的第一个文件并暂停。
如何处理这种情况。 请帮助。
答案 0 :(得分: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/*
。