【发布时间】:2021-01-03 15:37:37
【问题描述】:
我想解决的问题如下。我有一个长时间(1 到 2 小时)的运行任务,必须每天运行。所以 goto 选项是 cron。但问题是我必须在连续运行之间留出 24 小时的间隔。因此,现在使用 cron 将涉及在每次运行后重写 cron 作业文件。在这个例子之后,这可能会很清楚。
长期运行的作业“LR”从星期一下午 6 点开始,到当天晚上 7:30 结束。 周二应该从晚上 7:30 开始,而不是下午 6 点(就像周一一样)。这是因为连续运行之间必须有 24 小时的间隔。
这里显而易见的选择是让进程运行无限循环。开始 LR 工作。然后睡眠 24 小时并继续循环。这也很有效。在我的设置中有一个 bash 脚本正在运行这个循环。
while [ 1 == 1 ]; do
/bin/jobs/long_run.py
/bin/jobs/cleanup.sh
sleep 86400
done
所以我的问题是 CPU 资源消耗总量和 RAM 使用量是多少。 不确定这是否会影响答案;我在安卓手机上的 termux 上运行它。 也请推荐其他轻量级的选择。
【问题讨论】:
-
如果这是您的整个脚本,资源利用率将非常低。您可以使用
at now + 1 day将作业交给系统。 -
你可以使用'at'命令
标签: bash sleep job-scheduling termux resource-utilization