【问题标题】:Trigger multiple functions same time from website从网站同时触发多个功能
【发布时间】:2018-05-20 20:55:00
【问题描述】:

我有一个非常简单的应用程序。

用户上传一张照片,然后照片得到各种增强,例如“模糊”或“棕褐色”。

图像过滤器的处理是在天蓝色函数中完成的。因此,您将图像的“guid”与过滤器一起传递给 azure 函数,然后 azure 函数会处理它并创建照片并放入 azure 存储中。

我有多个图像过滤器。

是否可以在我的网站上为每个过滤器同时请求多个 Azure 函数?或者有没有别的办法。

注意:我不想使用 blobstorage 触发器,因为它们可能会延迟几分钟。这是我在微软官方文档上看到的。

我认为在网络服务器上发出 100 个并行 http 请求可能是矫枉过正。触发 100 个并行函数执行的替代方案是什么。

【问题讨论】:

  • 这可能会因为它太宽泛而被关闭,并且基本上会导致有人说是或否。因为你只是问它是否可以。另一方面,如果您要求它被模糊,并且在单独的请求中要求它是 XXX,那将应用于模糊吗?谁在保存时获胜?
  • 我只想同时处理多个图像,然后向用户显示一个画廊。为什么这么难解释。
  • 还可以看看 Durable Azure Functions。 Durable Functions 允许您在代码中简洁地实现函数链接。 docs.microsoft.com/en-us/azure/azure-functions/…
  • 我的意思是,如果你开火,就做大,然后开火模糊图像,开火,就变成黑白。都在同一时间。一项功能将获胜。即一个人将要写作,而另一个人正在写作。所以谁来写,也是在黑白中添加了模糊,或者你得到一个模糊和一个黑色和白色。此外,您的问题并未询问如何显示 100 张图像。它询问如何并行应用过滤器 100 次

标签: .net azure azure-functions


【解决方案1】:

您可以继续使用 HTTP 执行此任务,并向您的 Azure Functions 发出 100 个并行请求。让这个工作 100% 可靠可能是一个挑战,如果某些响应是不成功的状态代码,至少要确保重试。

更自然的方法是重构为事件驱动的函数。

一个选项可以是 Reacting to Blob storage events 中所述的 Azure 事件网格。事件网格很快,但我找不到任何关于 Blob 事件保证延迟的参考。在这种情况下,您可能还需要 100 个函数,这听起来很麻烦。

最后,您可以将 100 条消息发送到存储队列或服务总线队列,说明需要处理哪个 blob 以及在消息负载中使用哪种转换。函数运行时将根据队列统计信息处理扩展和并行化执行。

【讨论】:

  • 延迟是非常重要的事情,官方文档中写道,如果您有超过 10.000 个 blob,则处理它们可能需要一分钟。
猜你喜欢
  • 2015-06-29
  • 2011-02-01
  • 1970-01-01
  • 2020-04-27
  • 1970-01-01
  • 1970-01-01
  • 2016-10-25
  • 1970-01-01
  • 2022-11-10
相关资源
最近更新 更多