java - 处理 Cron 作业

标签 java linux unix cron cron-task

我的应用程序从 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/

相关文章:

c - pthread_mutex_t 位于结构体内部并在访问时锁定该结构体

linux - 是否有用于在 Linux 中验证 SQLite 数据库的命令行实用程序?

macos - 'whoami' 在 mac 终端上不工作

unix - mysqldump 丢失表数据

java - 使用 jmap 查找当前堆大小

Java:如何在sql查询中使用多个参数在jdbc中执行preparedStatement?

java - 无法捕获全局热键(不是基于窗口的应用程序)

java - csvWriter 在 unix 机器(tomcat 服务器)上对于大文件(大小 5000 KB)的行为不同,它会创建空文件,相同的代码在 Windows 上工作正常,为什么?

java - 在一个单元格中添加多个编辑器

包的 javac 编译问题