我正在尝试针对每笔交易更新用户信用/计数信息。如果我们每秒交易超过 2/4 次,则以下更新不会更新计数/用户信用信息。
基本上是两个问题。
- 更新没有发生有时没有,错误消息。
- 更新失败并显示错误消息:412:失败:代码:412 值:前提条件失败详细信息(如果有):UpdateConditionNotSatisfied 请求中指定的更新条件不满足。RequestId:1beb3fa9-9ad2-46f7-b8ee-af3a09300db7 时间:2013-06-09T16:12:17.6797130Z。
我正在使用 Azure 为SMS API做一个从 RDMBS 迁移到 NoSQL 的原型。不知道为什么会发生这样的事情。
代码粘贴在下面
public function update_credit_to_azure_table () {
// Create table REST proxy.
$tableRestProxy = ServicesBuilder::getInstance()
->createTableService($this->connectionString);
$result = $tableRestProxy->getEntity("tblapilogin", $this->apiusr , $this->apiusr);
$entity = $result->getEntity();
$new_api_balance = $this->global_api_credit - $this->credittodeduct;
$credit_used = $this->api_credit_used + $this->credittodeduct;
$entity->setPropertyValue("global_api_credit", $new_api_balance); //Update Balance.
$entity->setPropertyValue("api_credit_used", $credit_used); //credit used Updated .
try {
$tableRestProxy->updateEntity("tblapilogin", $entity);
echo "<br>New Blance is: " . $new_api_balance;
echo "<br>credit_used is: " . $credit_used;
}
catch(ServiceException $e) {
$code = $e->getCode();
$error_message = $e->getMessage();
echo $code.": ".$error_message."<br />";
}
}
乐观并发的更新函数是这里的主要测试。