从 Net Core Web 应用锁界面创建 Azure 资源
Creating Azure resources from Net Core web app locks interface
简而言之,创建以编程方式定义的 Azure
资源(VM
、ResourceGroups
等)的最佳方法是什么,而无需锁定网络应用程序的界面,因为其中一些操作需要多长时间?
更详细:
我有一个 Net Core
手动添加客户的 Web 应用程序。添加后,它会自动为 Azure
创建一些资源。但是,我注意到在这些操作期间我的接口是 'locked'。从 Web 应用程序中分离这些操作的相对简单的方法是什么?我曾想过使用 Service Bus
或 Azure Relay
发送触发器并触发 Azure Function
。但是,在我看来,所有这些资源 return 都回来了,我的网络应用程序正在等待它。为此,我需要 'send and forget method'。只需发送触发器来创建这些资源,暂时不要理会 return 值,继续应用程序。
如果 'send and return' 方法也适用于我的网络应用程序,那也很好。
欢迎提出任何建议!
您需要将工作排队到 运行 后台,然后 return 立即执行操作。最简单的方法是创建托管服务。有几种不同的方法可以做到这一点:
- 使用 queued background service 并实际排队要在您的操作中完成的工作。
- 只需将所需信息写入数据库 table、redis 存储等,然后使用 timed service 按计划执行工作。
在任何一种情况下,您也可以考虑将其拆分为 worker service(本质上,一个单独的应用程序仅由托管服务组成,而不是 运行将其与您的网络应用程序)。这使您可以独立扩展服务,并使您的 Web 应用程序免受服务可能遇到的问题的影响。
设置服务并安排工作后,您只需要通过某种方式让用户知道工作何时完成。一种典型的方法是使用 SignalR 来允许服务器向客户端通知进度更新或成功通知。但是,您也可以只做一些简单的事情,例如在一切准备就绪后向用户发送电子邮件。
简而言之,创建以编程方式定义的 Azure
资源(VM
、ResourceGroups
等)的最佳方法是什么,而无需锁定网络应用程序的界面,因为其中一些操作需要多长时间?
更详细:
我有一个 Net Core
手动添加客户的 Web 应用程序。添加后,它会自动为 Azure
创建一些资源。但是,我注意到在这些操作期间我的接口是 'locked'。从 Web 应用程序中分离这些操作的相对简单的方法是什么?我曾想过使用 Service Bus
或 Azure Relay
发送触发器并触发 Azure Function
。但是,在我看来,所有这些资源 return 都回来了,我的网络应用程序正在等待它。为此,我需要 'send and forget method'。只需发送触发器来创建这些资源,暂时不要理会 return 值,继续应用程序。
如果 'send and return' 方法也适用于我的网络应用程序,那也很好。
欢迎提出任何建议!
您需要将工作排队到 运行 后台,然后 return 立即执行操作。最简单的方法是创建托管服务。有几种不同的方法可以做到这一点:
- 使用 queued background service 并实际排队要在您的操作中完成的工作。
- 只需将所需信息写入数据库 table、redis 存储等,然后使用 timed service 按计划执行工作。
在任何一种情况下,您也可以考虑将其拆分为 worker service(本质上,一个单独的应用程序仅由托管服务组成,而不是 运行将其与您的网络应用程序)。这使您可以独立扩展服务,并使您的 Web 应用程序免受服务可能遇到的问题的影响。
设置服务并安排工作后,您只需要通过某种方式让用户知道工作何时完成。一种典型的方法是使用 SignalR 来允许服务器向客户端通知进度更新或成功通知。但是,您也可以只做一些简单的事情,例如在一切准备就绪后向用户发送电子邮件。