我已经设置了一个很好的日志系统,可以写入Azure Table Storage,并且它已经运行了很长时间 . 但是,在我的代码中有一些地方,我现在需要将大量消息写入日志(50-60 msgs),而不仅仅是一对 . 同样重要的是,在我知道日志成功之前,我无法启动新线程来完成对日志的写入并返回MVC操作,因为理论上该线程可能会死亡 . 在将数据返回给Web用户之前,我必须写入日志 .

根据Azure仪表板,表存储事务需要约37毫秒提交端到端(E2E),而队列只需要约6毫秒端到端提交 .

enter image description here

我现在正在考虑不直接登录到表存储,而是登录到Azure队列,然后运行批处理作业来读取队列,然后将它们放在表存储中的适当位置 . 这样我仍然可以通过它们的分区和行键正确地索引它们 . 我还可以只写一个包含所有日志条目的队列消息 . 所以它应该只需要6ms而不是(37 * 50)ms .

我知道有Table Storage批处理操作 . 但是,每个日志条目通常会转到不同的分区,批处理操作需要保留在单个分区中 .

我知道队列消息只能存活7天,所以我确保如果它们的日期超过一天,我会将队列消息存储在一个新的机制中(如果它在前50次没有工作,那就不是去上班) .

我的问题是:我没有想到什么?在接下来的4个月里,怎么能完全把我踢进球里?