插入/更新后获取时间戳

时间:2011-12-26 16:39:56

标签: azure azure-table-storage

在azure表存储中。有没有办法在更新或插入后获取新的时间戳值。我正在编写一个三阶段提交协议来获取表存储以支持分布式事务,并且它会对同一个实体进行多次写入。因此,操作顺序如下:Read EntityWrite Entity (Lock Item)Write Entity (Commit new values)。我想在锁定项操作之后获取新的时间戳,因此在执行提交新值操作之前,我不必再次不必要地读取该项。那么在savechanges操作之后,是否有人知道如何有效地获取新的时间戳值?

4 个答案:

答案 0 :(得分:1)

我认为你不需要做任何特殊/额外的事情。当您阅读您的实体时,您将获得一个Etag。当您保存该实体(设置someLock = true)时,只有在您阅读后没有其他人更新过该实体时,保存才会成功。因此你知道你有锁。然后你可以随意做第二次写作。

答案 1 :(得分:0)

我不相信这是可能的。我会使用你自己的时间戳和/或guid标记条目。

答案 2 :(得分:0)

如果您愿意返回Update REST API call,它会返回生成响应的时间。它可能与记录中的时间戳不完全相同,但我肯定会很接近。

答案 3 :(得分:0)

您可能需要破解Azure表。司机

例如,在Azure python lib(TableStorage)中,只是跳过了时间戳。

    # exclude the Timestamp since it is auto added by azure when
    # inserting entity. We don't want this to mix with real properties
    if name in ['Timestamp']:
        continue