【问题标题】:How should I host a .Net Core Console application that needs to run 24/7?我应该如何托管需要 24/7 全天候运行的 .Net Core 控制台应用程序?
【发布时间】:2019-09-21 16:41:20
【问题描述】:

我的应用程序是用 .Net Core 作为控制台应用程序编写的。它使用 RabbitMQ 队列并侦听 SignalR 套接字,调用 3rd 方 API 并发布到 RabbitMQ 队列。它需要 24/7 全天候运行。

这在我的本地环境中运行良好,但现在我已准备好部署到 Web 服务器,我正在尝试找出如何最好地托管此应用程序。我倾向于部署到 Docker 容器中,但我不确定这是否适用于 24/7 应用程序。

容器是专为短期工人设计的吗?让它们一直运行会很昂贵吗?

我可以将我的容器与我的 Web API 等放在我的 Web 服务器上并托管在同一个 Windows EC2 盒子上,以节省托管成本吗?

其他人将如何将此 .Net Core 应用程序部署到网络托管环境中?

【问题讨论】:

  • 我们将 Azure webapps 与 webjobs 一起使用,但主要应用程序是 web 应用程序; webjob 只是一个消耗 RMQ 的小东西。另请注意,SO 并非用于“向我推荐一本书、教程、图书馆、服务..”请求,因此您的问题可能不会吸引任何合理(非基于意见)的答案,并且可能会因离题而关闭
  • 谢谢,我试图在 Stack Exchange 上得到回复,但没有得到回复,因此我在这里发帖寻求一些建议。
  • 谢谢@CaiusJard - 我将开始研究网络工作。blogs.msdn.microsoft.com/benjaminperkins/2017/03/07/…

标签: docker windows-services containers web-hosting


【解决方案1】:

您的应用程序是否维护任何状态?你可以拥有一个长期存在的应用程序,但如果你维护它,你会想要处理状态。可能能够使用 compose 文件来处理卷、网络和重启策略等所有内容。

【讨论】:

  • 是的,它有存储应用程序状态的字典。我计划每次状态发生变化时,将数据保存到磁盘或数据库中,以便在失败后可以恢复。
猜你喜欢
  • 1970-01-01
  • 2021-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-27
  • 1970-01-01
  • 1970-01-01
  • 2017-01-02
相关资源
最近更新 更多