【问题标题】:Handling Cron Job处理 Cron 作业
【发布时间】:2014-11-04 02:01:29
【问题描述】:

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

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

【问题讨论】:

  • 如果你不能改变你的 cron 工作不停止,那么你的进程应该在处理之前将文件移动到其他地方,我认为
  • 你应该有一些标志来处理这些情况。例如,您可以在 /tmp/myscript 中创建一个假的空文件,一旦第一个 cronjob 完成,该文件就会被删除。

标签: java linux unix cron cron-task


【解决方案1】:

如果您不确定应用程序的运行时间永远不会超过运行时间间隔,请不要对应用程序使用 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/*

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-15
    • 2015-12-13
    • 1970-01-01
    • 2014-01-11
    • 2013-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多