队列并发触发的Azure功能

时间:2019-12-03 12:54:00

标签: stored-procedures concurrency azure-functions message-queue

我有一个azure函数,该函数从azure数据库中调用存储过程。它的工作方式是,当它收到消息“ A”时,应该使用BULK INSERT .csv文件将blob存储中的文件“ A”复制到数据库中的临时表“ A”中,并且我可能在一秒钟内得到几个文件,需要插入到单独的表中。

问题是,当我使用“ Microsoft Azure存储资源管理器”手动在队列中添加一条消息并且仅一条消息来触发该功能时,它运行得很好,并且我可以在目标表中看到数据,但是当它自动运行它必须处理多个文件。因此,这些表都没有任何数据,也没有文件被复制!而且没有例外!奇怪!

那么,当我们同时调用多个Azure函数时,尤其是当他们通过调用可用于不同源和目标的相同存储过程进行数据库事务时,有人知道它是如何工作的吗?

1 个答案:

答案 0 :(得分:0)

与此功能相关的队列由另一个Azure函数填充,该函数将文件从FileShare复制到BlobStorage,并且由于此过程是异步的,因此第一个Azure函数复制文件,并在复制完成之前执行其余的该代码包含将消息添加到第二个队列并在文件大小为0KB时运行第二个功能的代码