我编写了一个脚本,该脚本从solr获取日期在指定时间段内的数据,并将该脚本用作每日 cron 运行。
问题是 cronjob 没有完成任务。如果我手动运行脚本(在同一时间段内),它运行良好。如果我减少指定的时间段,脚本也会从 cron 运行。所以我的猜测是 cronjob 在运行脚本时超时,因为有很多数据要处理。
如何增加 cronjob 的超时时间?
PS - 1. 我在 cronjob 中运行的脚本是一个运行 python 脚本的 bash 脚本。
请注意,ulimit -t
建议的解决方案将限制使用的 CPU 时间量,而不是已经过去的实际时间量。
从bash
手册页:
ulimit [-HSTabcdefilmnpqrstuvx [limit]]
...
-t The maximum amount of cpu time in seconds
更重要的是,cron 一开始并没有强加任何超时。它只是启动任何过程并继续前进。
顺便说一句:很抱歉将其发布为答案,但我还没有足够的积分来添加评论。
在运行脚本之前,您可以尝试在 cronjob 中使用ulimit -t [秒数]。