Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在crontab中重新运行失败的python导入脚本,直到成功_Python_Import_Cron_Restart - Fatal编程技术网

在crontab中重新运行失败的python导入脚本,直到成功

在crontab中重新运行失败的python导入脚本,直到成功,python,import,cron,restart,Python,Import,Cron,Restart,我的crontab中有以下行: # Import data from DB 0 3 * * * bash -ic "python /home/python/td.py" 此脚本在一个数据集上运行查询并将结果导入另一个数据集。由于数据量巨大,有时它会失败 我正在寻找最简单的方法来重新运行这个脚本,直到它成功。也许我应该检查任何日志文件,或者先检查然后再检查?如果当天的数据已经存在,可以检查目标数据库吗?我可以直接在cron中执行此操作,还是应该编写另一个脚本进行检查 提前感谢您的帮助 我创建了

我的crontab中有以下行:

# Import data from DB 
0 3 * * * bash -ic "python /home/python/td.py"
此脚本在一个数据集上运行查询并将结果导入另一个数据集。由于数据量巨大,有时它会失败

我正在寻找最简单的方法来重新运行这个脚本,直到它成功。也许我应该检查任何日志文件,或者先检查然后再检查?如果当天的数据已经存在,可以检查目标数据库吗?我可以直接在cron中执行此操作,还是应该编写另一个脚本进行检查

提前感谢您的帮助

我创建了另一个脚本(
dbcheck.py
),用于检查数据是否在目标数据库中(简单计数(*))。我将在导入脚本后在crontab中安排它

# Import data from DB 
0 3 * * * bash -ic "python /home/python/import.py"
# Check data in DB 
0 4 * * * bash -ic "python /home/python/dbcheck.py"

如果在
dbcheck.py
中选择count(*)将返回0,如何再次运行
import.py

这种逻辑应该在脚本中,也就是说,在对数据执行任何操作之前,它应该检查数据是否可用。但是数据在源代码上始终可用,但有时我必须运行2-3次导入脚本才能导入它们。如何自动化此过程?如果您不想在脚本中实现错误重试,可以将其封装在shell脚本中重试。但我建议您干净地处理错误,并在脚本本身中重试。