我基本上有一个cron作业,每天晚上运行,更新数据库中的数千个产品.
我在晚上运行cron作业的原因是因为服务器上的延迟会减少,因为在此期间没有多少人访问该站点,cron作业可以持续数天而不受任何干扰.
这是cron job命令的样子
30 23 * * * /usr/bin/php /var/www/ul/prices_all.php >> /var/www/ul/log/prices_all.txt
Run Code Online (Sandbox Code Playgroud)
我想知道的是,是否有可能创建一个cron作业,在5小时后杀死这个过程,例如
30 05 * * * kill /var/www/ul/prices_all.php[process]
Run Code Online (Sandbox Code Playgroud)
Gre*_*ack 16
您可以使用timeout(coreutils)执行此操作:
30 23 * * * timeout 18000 /usr/bin/php /var/www/ul/prices_all.php >> /var/www/ul/log/prices_all.txt
Run Code Online (Sandbox Code Playgroud)
它只是设置一个超时(18000secs = 5小时)并在该时间之后仍在运行时终止进程.
或者您可以在php文件中设置超时:
<?php set_time_limit(18000);
Run Code Online (Sandbox Code Playgroud)