处理Cron工作

时间:2014-09-10 12:09:49

标签: java linux unix cron cron-task

我的应用程序从SFTP获取文件并开始处理它。我有一个cron作业,设置为5分钟。假设文件到达SFTP,拉取操作获取文件并开始处理其中的记录.Howerver处理时间是5分钟后,cronjob再次拉出第二个文件并找到要处理的第一个文件并暂停。

如何处理这种情况。 请帮助。

1 个答案:

答案 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/*