【发布时间】:2020-05-07 11:07:42
【问题描述】:
我的存储容器中有大约 35k blob 文件。其中一些在部署功能之前较旧,其中一些在部署功能应用之后。
这是我的函数签名
public async Task Run([BlobTrigger("portal/{filePath}")]Stream blob, Uri uri,
IDictionary<string, string> metadata, string filePath, ILogger log)
{
log.LogInformation($"{filePath}\n Size: {blob.Length} Bytes");
// rest of the code
}
我的理解是这个函数会不断处理所有新旧文件。 但是当我在 Azure 门户上看到该日志时,就会发生这种情况。
- 2020-01-21T09:02:56.103 [信息] 执行“watch-portal-blob”(成功,Id=37cfaf56-3be2-4e6f-9e46-3558389daf4f)
- 2020-01-21T09:04:33 在过去 1 分钟内没有新的跟踪。
- //更多时间戳
- 2020-01-21T10:51:34 在过去 108 分钟内没有新的跟踪。
- 2020-01-21T10:52:34 在过去 109 分钟内没有新的跟踪。
- 2020-01-21T10:53:34 在过去 110 分钟内没有新的跟踪。
- 2020-01-21T10:54:34 由于超时 120 分钟,日志流会话已结束。
它随机处理几个文件,然后进入空闲状态,然后在几个小时后再次处理另外 20 个文件。 谁能指出我正确配置 blob 触发器以处理所有现有 blob 以及新 blob 而不会中断?
仅供参考:我所有的 blob 都是简单的 XML 文件,每个文件小于 20 KB。它所做的只是读取 XML 验证并将其存储在 MongoDB 中。如果我在本地运行此作业,则在 1 分钟内至少会处理 50 个文件,因此应该很早就完成 30k 个文件。 1 月 17 日星期五有大约 35k 个文件,今天 1 月 20 日仍然有 32k 个文件(新增文件大约 2k)。这意味着它仅在 3 天内处理了 5k 个文件。
【问题讨论】:
-
我认为它只处理新添加的文件
-
我也检查过,它没有处理过去 3 天上传的文件,但是当我在门户上观看实时日志时,它正在处理 2019 年 10 月以来的文件
标签: c# azure azure-functions azure-blob-storage