【发布时间】:2021-10-08 18:32:44
【问题描述】:
我正在开发一个包含两个主要部分的新项目:-
-
从 SharePoint Online 读取文件并将其发送到外部 API 的预定服务。
-
外部 API 将使用人工智能模型处理接收到的文档 >> 从文档中提取数据 >> 然后将提取的数据推送回我们的系统 >> 我们的系统将使用提取的数据更新 SharePoint。
所以目前我正在定义我将要使用的架构和技术,我在此阶段定义以下内容:-
-
对于第一点,我将构建一个 .net 核心控制台应用程序 >> 将其托管在 windows 服务器中 >> 使用 windows 任务调度程序对其进行调度。此服务将使用 SharePoint API 从 SharePoint 读取文件 >> 将它们发送到外部 API。
-
但我不确定第 2 点?我将如何从系统内部的外部 API 接收推送的数据?我可以在控制台应用程序中定义 API 端点吗?或者为此我需要构建类似 ASP.NET Core MVC 托管在 IIS 中的东西,它暴露了一些 API 端点来获取推送的数据?请记住,外部 API 和我们的系统将安装在同一个 Windows 服务器中。或者我可以构建一个 ASP.NET Core MVC Web 应用程序,它将控制器类公开为 API 端点 + 使用其控制台应用程序
program.cs使用 Windows 任务调度程序进行调度?
谢谢
【问题讨论】:
-
除了HTTP之外,还有很多方法可以实现进程间通信。有消息队列、数据库、许多特定于操作系统的方法。
-
@mason 你能就此提供更多建议吗?
-
@mason 在我的情况下,我将使用
WebClient()进行调用,但我担心的是我如何才能拥有一个公开 API 的应用程序 + 有计划的工作?例如,我应该创建 2 个单独的应用程序吗?一个创建为 .net core 控制台应用程序,另一个创建为 asp.net core mvc ?或者我们可以使用控制台应用程序或 asp.net 核心 Web 应用程序在一个应用程序中实现这一点。你明白我的意思吗?谢谢 -
您可以随心所欲地构建您的应用程序。尝试一些东西。如果它不起作用,请提供minimal reproducible example 并解释您的方法有什么问题。 Stack Overflow 在这里回答特定的编程问题和答案,而不是构建您的应用程序。
-
基于@mason 的评论,我肯定会为这个用例使用后端处理器。我是 Rebus 的忠实粉丝,我在下一个链接中的博客文章展示了如何在 Rebus 中构建一个长期运行的工作流。工作流由 API 调用启动,这听起来与您的场景相关:seankearon.me/posts/2020/12/rebus-sagas-csharp
标签: asp.net asp.net-core iis asp.net-core-mvc class-library