我正在开发一个Python脚本,它从生成的JSON文件加载项目,并最终将这些项目插入到MySQL数据库中,前提是它们尚不存在。执行计划通过cronjob每个季度执行一次。但是,看起来无论何时从此cronjob运行此脚本,都不会插入任何内容,因为这些项目已经存在。但是当我自己运行脚本时(甚至直接在cron运行它之后),它确实会插入新的行..
cron条目如下所示:
*/15 * * * * /usr/bin/python /home/ubuntu/scraper/scraper.py > /home/ubuntu/scraper/log
该应用程序由两个脚本组成:一个将新找到的项目放到JSON文件中的scraper,另一个检查数据库中是否已存在这些项目的脚本,如果没有则插入它们。导入最后一个脚本并从第一个脚本作为函数调用。两个文件都以
开头#!/usr/bin/env python
......虽然我不怀疑这是一个环境问题。对于数据库处理,我使用mysql.connector
模块。我确信数据库脚本能够读取JSON文件,因为我看到正在打印的项目。
从cron运行时,脚本似乎没有通过此查询:
SELECT i.id FROM items i LEFT JOIN properties p ON p.id = i.id WHERE MD5(CONCAT(i.address_norm, p.source)) = MD5(CONCAT(%s, %s))
当行计数返回1时,它继续到下一个项目。再次,当我手动运行它,它工作得很好。此外,我没有看到我为cronjobs保存的日志中抛出的任何错误。我不知道在哪里看这一点。
知道可能出现什么问题吗?