【发布时间】:2018-02-24 03:42:22
【问题描述】:
我正在尝试设计一个新的应用程序,但在最好的方法上有点卡住。
我想要做的是让一个机器人连接到一个 irc 通道,该通道从聊天消息中收集信息,然后我希望有一个 HTTP 端点,我可以从到目前为止收集的信息中获取结果。
我有一个正在运行的机器人,它收集我想要的信息,我可以创建端点,但我如何将其构建到 1 个应用程序中?我有2个应用程序吗? 1 输出到文件和端点只是读取文件并输出?我希望在 1 个应用程序中使用它,但到目前为止还没有找到这样的解决方案。
我目前正在使用 DotNet core 2.0 并部署到 Raspberry Pi。
【问题讨论】:
-
这取决于您对“应用程序”的定义。一个“应用程序”可以是一堆可执行文件。你的意思是单个EXE?如果您看一下“面向服务的架构”,它会建议两个服务独立运行。 (两个exe文件)
-
我在我当前的网络应用程序中使用了一个 WebHostBuilder,所以希望我能以某种方式将我的 irc 机器人集成到其中。我希望我可以使用参考,但它仍然只是一个网络应用程序。
-
我不建议在 Web 服务器内运行后台作业。尽管实际上有很多人这样做(如前所述使用hangfire),但网络服务器不是作业服务器。
-
我会这样做。这样,如果一个进程崩溃,它将与另一个进程隔离。如果您实际上可以单独查看单个进程(即两个收集器和结果端点没有在同一个 Web 服务器进程中混合),则对单个进程进行故障排除和性能调整会更容易。并且这两个进程不需要直接相互交谈——其中一个写入日志,其中一个从日志中读取。理论上,您可以将其扩展到两个单独的 pi,每个 pi 上运行一个进程(并且有两个微弱的硬件)
-
@SamJ 顺便说一句,想象一下您的服务是否遇到错误并引发异常。您是否希望您的 IRC 机器人能够因为遇到未捕获的错误而关闭您的网站?
标签: .net-core application-design web-application-design