Azure functions CosmosDBTrigger在重新启动期间丢失文档更改或仅捕获最近的更改

Azure functions CosmosDBTrigger在重新启动期间丢失文档更改或仅捕获最近的更改,azure-functions,azure-cosmosdb,cosmosdbtrigger,Azure Functions,Azure Cosmosdb,Cosmosdbtrigger,最近我遇到了一个问题,我的CosmosDBTrigger Azure函数将仅在重新启动时捕获我的上一次更新记录,或者如果在重新启动期间发生文档更改,有时甚至没有机会从重新启动中触发 功能1用于通过HttpTrigger从集合中更新我的物品(A、B和C)价格 功能2将跟踪更新事件,并通过CosmosDBTrigger将其记录到数据库中,当然还有租赁文档 如果我的函数2在重新启动期间停止,则会有3个对我的函数1的Http调用,这些调用会将我的两个项目的价格总共更新3次,例如 A price $1 -

最近我遇到了一个问题,我的CosmosDBTrigger Azure函数将仅在重新启动时捕获我的上一次更新记录,或者如果在重新启动期间发生文档更改,有时甚至没有机会从重新启动中触发

功能1用于通过HttpTrigger从集合中更新我的物品(A、B和C)价格

功能2将跟踪更新事件,并通过CosmosDBTrigger将其记录到数据库中,当然还有租赁文档

如果我的函数2在重新启动期间停止,则会有3个对我的函数1的Http调用,这些调用会将我的两个项目的价格总共更新3次,例如

A price $1 --(1st update)--> $2 --(2nd update)--> $3 --(3rd update)--> $4
B price $2 --(1st update)--> $4 --(2nd update)--> $6 --(3rd update)--> $8
C price $3 --(1st update)--> $6 --(2nd update)--> $9 --(3rd update)--> $12
在我的函数2重新启动后,我发现了两个问题:

  • 有时我的函数2不会触发,这意味着它丢失了所有更新,并且是随机发生的…(我假设租约收集将存储每个DB更新的检查点,CosmosDBTrigger将查看每个检查点的租约文档,以便从上次停止时重新捕获,对吗?)
  • 每当我的功能2在重新启动后能够触发时,我假设它能够捕获我对项目A、B和C的所有3次更新但是它没有捕获我的前2次更新,而是只捕获最后一次更新,即
  • 对于排名第一的人,为什么CosmosDBTrigger有时能捕捉到我之前的变化,但有时却失败了?我们真的很担心,因为第一次是随机发生的,第二次我们可能会因为无法解释的原因丢失数据

    是否有任何时间段用于临时存储更新,如30秒、60秒?或者租约集合会覆盖我以前在检查点的更新吗?那么在租赁集合中,每个项目代表什么呢


    对于第二,这种情况是出于设计,还是我做了一些错误的事情,或者任何设置都可以帮助我跟踪/保留所有更新更改(在历史记录中),以便以后我可以捕获所有更新,然后通过CosmosDBTrigger功能?

    找到原因了吗?我也想知道是什么原因造成的,以及如何修复。你找到原因了吗?我也想知道这是什么原因,以及如何解决它
    A price $4
    B price $8
    C price $12