gpt4 book ai didi

php - 交易内 curl

转载 作者:行者123 更新时间:2023-11-30 21:41:14 25 4
gpt4 key购买 nike

我正在使用谷歌客户端 API 来获取我的实例的状态以制作本地数据库副本。

有可能多个脚本更新了我的本地副本。我可以获取数据,当数据传回我的服务器时,其他一些脚本会修改数据。在我存储原始提取的数据后,创建了一个丢失的更新。

因此我需要在进行更新时使用事务来阻止所有其他流量到我的表

这是获取代码:

<?php
require_once './gcloud/vendor/autoload.php';

$client = new Google_Client();
$client->setApplicationName('Google-ComputeSample/0.1');
$client->useApplicationDefaultCredentials();
$client->addScope('https://www.googleapis.com/auth/cloud-platform');

$project = 'project_id'; // TODO: Update placeholder value.
$zone = 'us-east1-b'; // TODO: Update placeholder value.
$instance = 'instance-1'; // TODO: Update placeholder value.

$mysqli = new mysqli($hn, $un, $pw, $db);
$mysqli->begin_transaction();

$listInstancesJSON = $service->instances->listInstances($project, $zone, []);

//store it

$mysqli->commit();

在发出请求时阻塞表听起来是个糟糕的主意。我想我会在脚本的开头添加 ini_set('max_execution_time', 5);,以防提取失败(我假设他们使用 curl)。如果执行时间超过 5 秒,我的表(或数据库)是否会在脚本终止后仍保持阻塞状态?我应该实现任何其他防御机制吗?

我计划每分钟将此代码作为 cron 作业运行。

最佳答案

听起来 listInstances 需要等同于

SELECT ... FOR UPDATE

关于php - 交易内 curl ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51463267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com