multithreading - Azure 函数的多个输入

标签 multithreading azure web proxy azure-functions

TLDR:

Azure 函数是否可以有多个输入?

更长的解释:

我是 Azure Functions 的新手,但仍然不太了解它。

我有一个通过代理 Web 请求下载 HTML 数据的应用程序,我正在考虑将其移动到 Azure Functions。

但是,该函数需要两个输入:字符串 URL 和代理对象(包含 IP 地址、用户名和密码属性)。

我正在考虑有两个队列,一个用于 URL,一个用于代理。

客户端应用程序会将 URL 添加到队列中,这将触发该函数。

代理队列将具有有限的代理对象池,这些代理对象在用于 Web 请求后将由消费函数添加回队列。

因此,如果代理队列中没有代理,则该函数将无法创建 Web 请求,直到将代理添加回队列中为止。

这一切都假设 Azure Functions 是并行的,并且 URL 队列中的每个触发器都在另一个线程上运行一个函数。

那么,我正在考虑的事情可能吗?如果没有,是否有其他方法可以解决这个问题?

最佳答案

给定函数只能有一个触发器,即当指定队列中有新消息时,该函数将运行。

有一个输入绑定(bind)功能,可以根据触发请求的属性加载附加数据。例如。如果传入队列消息包含 URL 和一些代理 ID,并且代理设置存储为表存储实体(或 blob),则可以定义输入绑定(bind)以根据消息中的 ID 自动加载代理设置。请参阅this example .

当然,您可以在没有输入绑定(bind)的情况下实现相同的效果,只需根据您的自定义逻辑在函数体中手动加载代理设置即可。

只有在两个队列中同时有消息时,才能设置不触发的函数。

关于multithreading - Azure 函数的多个输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48516809/

相关文章:

Azure Functions、功能键无法访问并且门户中的文件看起来丢失

php - 在网站上创建交互式绘图 R-plots

javascript - 覆盖 JavaScript 函数中的属性

android - RxAndroid ViewObservable NetworkOnMainThreadException

c++ - "Project.exe has triggered a breakpoint"实现多线程后

objective-c - UITableview 在 reloadData 调用时抛出 "invalid number of rows"错误,但仅适用于 iPad 1 而不是 iPad 2

c++ - 将 1 到 100 之间的数字相加 OpenMP

azure - 从本地 SSIS 处理 Azure SSAS 多维数据集 : Do I need a dummy Office365 Account?

azure - 在 Azure 或 AWS 上托管 TFS

javascript - 无法在查看源代码中获取 div 的更新的 insidehtml