我可能忽略了一些简单的事情,但几周来我一直试图了解这里出了什么问题,我需要一双新的眼睛。
我有一个处理 Paypal 付款通知的 CGI 应用程序。当有人订阅时,我实际上得到了一个订阅 IPN,然后是一个支付 IPN。On 就在另一个之后,所以我启动了两个 CGI 进程。我为每个日志创建一个单独的日志,并且时间戳是相同的(时间戳的分辨率 - 秒)。
CGii 应用程序旨在为新订户创建用户帐户,然后支付 IPN 将信息添加到新创建的帐户中。很简单。
问题是第二个 IPN 无法找到该帐户。我认为这是因为它在第二个 IPN 去寻找它时已经完成创建,所以我将第二个 IPN 延迟了 5 秒。
现在时间戳显示为第一个 IPN 创建帐户的函数在第二个 IPN 开始查找它之前已返回,这意味着在发出第一个 SELECT 之前插入已完成。没运气。
我想知道这是否是缓存问题: http ://dev.mysql.com/tech-resources/articles/mysql-query-cache.html 但我不这么认为。
我在这里根本没有使用 TRANSACTIONS,但是在第二个 CGI 应用程序发出它的 SELECT 之前,我没有释放第一个 CGI 应用程序的句柄,但这应该无关紧要。我想我可以尝试发布一个我可能忽略了一些简单的事情,但我已经尝试了解这里出了什么问题了几个星期,我需要一双新的眼睛。
我有一个处理 Paypal 付款通知的 CGI 应用程序。当有人订阅时,我实际上得到了一个订阅 IPN,然后是一个支付 IPN。On 就在另一个之后,所以我启动了两个 CGI 进程。我为每个日志创建一个单独的日志,并且时间戳是相同的(时间戳的分辨率 - 秒)。
CGii 应用程序旨在为新订户创建用户帐户,然后支付 IPN 将信息添加到新创建的帐户中。很简单。
问题是第二个 IPN 无法找到该帐户。我认为这是因为它在第二个 IPN 去寻找它时已经完成创建,所以我将第二个 IPN 延迟了 5 秒。
现在时间戳显示为第一个 IPN 创建帐户的函数在第二个 IPN 开始查找它之前已返回,这意味着在发出第一个 SELECT 之前插入已完成。没运气。
我想知道这是否是缓存问题: http ://dev.mysql.com/tech-resources/articles/mysql-query-cache.html 但我不这么认为。
我没有使用 TRANSACTIONS,但我没有尝试在 INSERT 之后发出 COMMIT。
我在这里想念什么?