我有一个场景,其中有一个URL流,我需要针对该URL发出HTTP请求。然后,我将下载收到的数据并将其保存在Blob存储中。我必须使用Azure函数来执行此操作,以便仅在实际有要处理的URL时才为服务付费。
但是,我遇到的困难是如何通过数量有限的代理触发下载。尽管我很高兴下载功能可以扩展到可用的代理数量,但我希望每个代理都可以处理其收到的每个URL。换句话说,必须限制每个代理一次只能从一个URL下载数据。
我考虑过将URL放在一个队列中,将代理放在另一个队列中,并在每个队列中的一个可用时触发一个函数,然后将使用过的代理推回代理队列,但是函数只能触发一个触发器。
我还考虑创建尽可能多的代理队列,并在队列之间分配URL,但是我不确定如何将每个触发函数的并发限制为一个。
有人知道怎么做吗?
答案 0 :(得分:1)
好的,我通过这篇文章找到了一种方法:
答案是向函数添加[Singleton]
属性。
但是,根据此评论,您 在实体等待处理的同时花钱>
https://github.com/Azure/azure-functions-host/issues/912#issuecomment-419608830