php - 确保多个请求被依次处理

标签 php mysql queue

解释实际发生的情况:

外部服务将带有 XML 数据的 HTTP POST 请求发送到 PHP 脚本。该脚本检查 MySQL 数据库中是否已存在数据。如果没有,它将插入一条新记录。

现在出现了第二项故障安全服务。它将完全相同的 XML 数据发送到 PHP 脚本。

问题:

脚本已检查记录是否存在。但请求几乎同时到来,并且脚本被并行调用。因此,具有相同数据的两个请求的数据都被插入。

我考虑过使用队列,但我无法想象一个简单的方法来做到这一点。整个过程其实非常简单。

确保不插入数据两次的最简单方法是什么?

最佳答案

为您的事务生成一个哈希值,使其在数据库级别上唯一。如果你尝试两次添加相同的数据,MySQL 会抛出异常?

关于php - 确保多个请求被依次处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43374405/

相关文章:

php - 我想从 DB::Select get() 获取 'INT' 值

php - 如何在MySQL中显示日期特定数据?

php - 表单验证和提交到数据库

c - 如何使用链表在 C 中显示队列

c# - 三个 c# 并发队列 - 当需要执行特定操作时如何暂停它们?

c++ - 我的队列数据结构实现错误

php - 我如何组合这些 sql 查询的结果?

php - Mysql join 返回多行结果,而不是每个实例返回一行结果

php - 在 PHP 中使用 mysqldump 而不使用整个路径

php - 查询字符串中未捕获异常