php - PHP脚本的任务划分

标签 php mysql scheduled-tasks division

我有一个网站抓取脚本,用于将数据存储到几个 MySQL 表中。主表中的记录是从其他表中引用的。该脚本需要大约 5 个小时才能执行,但它总是在大约 70 分钟后停止工作(set_time_limit() 已设置为 ofc)。我尝试从浏览器和 cron 运行它,结果是一样的。

由于脚本在随机时间停止,因此可能导致数据库不一致。可以存储主表记录,但不能使用主表中的 mysql_insert_id() 从属表记录。

有没有比在运行脚本时删除主表中的最后一条记录和其他表中该行的所有引用记录更好的方法?

最佳答案

您可以将对给定记录的所有查询包装在事务中,并在最后提交。这样,如果脚本在一组查询中途终止,更改将被回滚并且数据将保持一致。

关于php - PHP脚本的任务划分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10454220/

相关文章:

php - 从服务器 URL 下载图像 android

php - jquery 表单序列化()不起作用

java - 在 Java 中安排周期性任务,避免在必要时创建新线程(如 CachedThreadPool)

java - Spring boot @Scheduled 失败 SQL 错误 : 17008, SQLState: 08003

php - Laravel 提示查询具有重复的命名参数

php - 在 wordpress 中将菜单(导航)项更改为大写

python - 在 MySQL/SQLAlchemy 中计算事件持续时间的最佳方法?

service - 如何在 Flutter 中创建定时服务

mysql - 创建触发器Mysql

php - 如何列出前 10 个最重复的行?