【问题标题】:How to purge durable entity history with record deletion如何通过记录删除清除持久实体历史记录
【发布时间】:2020-04-27 19:40:59
【问题描述】:

我有一个疑问,在编写解决方案之前,我想知道它是否正确。

我们使用持久实体,我们想删除保存在“历史”表存储中的记录(我不想通过 Storage Explorer 删除表,这是更核心的选择)。所以,我怕是因为再过一段时间我会有很多空记录,也许性能不会更好。

我们尝试了几种解决方案,但都一样:删除实体的调度信号

Entity.Current.DeleteState();

甚至是删除所有实体的powershell。

function DeleteEntities 
{
    param (
        [string[]]$keys
    )
    foreach ($key in $keys) { 
        $signalEntityUri = "$baseUrl/runtime/webhooks/durabletask/entities/VoiceCallEntity/$key`?op=Delete&code=$code"
        Write-Output $signalEntityUri
        Invoke-WebRequest -Uri $signalEntityUri -Method POST
    }
}

function GetEntities 
{
    param (
        [string]$continuationToken
    )
    $baseUrl = "your_base_url_goes_here"
    $code = "your_code_goes_here"
    $listEntitiesUri = "$baseUrl/runtime/webhooks/durabletask/entities/VoiceCallEntity?code=$code"
    $response = Invoke-WebRequest -Uri $listEntitiesUri -Method GET -Headers @{'x-ms-continuation-token' = $continuationToken}
    $body = $response | ConvertFrom-Json
    $continuationToken = $response.Headers['x-ms-continuation-token']
    $keys = $body | select -ExpandProperty entityId | select -ExpandProperty key | where { $_ -ne '' }
    return @{ 'continuationToken' = $continuationToken; 'keys' = $keys }
}

$result = GetEntities('')
DeleteEntities($result.keys)
while($result.continuationToken -ne '') 
{
    $result = GetEntities($result.continuationToken)
    DeleteEntities($result.keys)
}

我还没有找到通过 API 删除整个记录的方法,所以我的最后一个意图是创建一个带有计时器触发器的 azure 函数,并在 API 表存储的帮助下,用 null 确定删除该表中的记录状态。

我是否缺少更简单的方法来实现此结果?

非常感谢。

【问题讨论】:

    标签: azure-functions azure-durable-functions


    【解决方案1】:

    解决方案在这里How to purge durable entity history with record deletion我错了,我不知道您可以清除持久实体的历史记录,唯一的区别是 {instanceId} 的格式为@entityName@entityKey。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-10
      • 1970-01-01
      • 1970-01-01
      • 2013-05-04
      • 1970-01-01
      • 1970-01-01
      • 2013-08-03
      相关资源
      最近更新 更多