我的应用程序从 SFTP 获取文件并开始处理它。我有一个设置为 5 分钟的 cron 作业。假设文件到达 SFTP,拉取操作获取文件并开始处理其中的记录。但是处理时间是更重要的是在 5 分钟后,cronjob 再次拉取第二个文件并找到第一个要处理的文件并停止。
如何处理这种情况。 请帮忙。
最佳答案
如果您不确定应用程序的运行时间永远不会超过运行间隔,请不要为应用程序使用 cron 作业。使用 sleep !
#!/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/*
中。
关于java - 处理 Cron 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25765114/