【问题标题】:What is .NET's approach for running very "big" async tasks?.NET 运行非常“大”的异步任务的方法是什么?
【发布时间】:2021-11-14 17:34:12
【问题描述】:

我想知道 .NET 程序员如何处理“大”任务。

例如,网站用户上传了一个视频文件,我们的服务应该为其添加一些视觉效果。

在 Python 中,我会使用 Celery(或者可能只是 crontab)或 RabbitMQ 和一些微服务来独立于网站的执行线程运行任务。

但是.NET 的方法是什么?

【问题讨论】:

  • 我不知道这个问题有什么问题。人们投票赞成关闭它或只是给出“-1”而没有解释原因,这让我感到难过。感觉社区以前更友好

标签: .net asp.net-core architecture


【解决方案1】:

我确实建议在网络服务器进程之外执行此操作。您可以为此使用Worker Service。工人服务实际上是为了完成这种繁重的工作。结合坚固的调度系统,如Quartz,您可以定期扫描并处理新的视频文件。我已经(在生产中)结合使用两者来运行相当多的网络服务器进程外作业,并取得了巨大的成功。

【讨论】:

    【解决方案2】:

    如果包含以下需求,微服务是很好的解决方案,否则建议使用https://docs.microsoft.com/en-us/dotnet/core/extensions/workers

    何时使用微服务:

    1- 当您希望您的单体应用程序适应可扩展性、敏捷性、可管理性和交付速度时。

    2- 当您必须使用当今的编程语言或技术堆栈重写旧应用程序以跟上现代业务需求和解决方案时。

    3- 当您有必须重用的独立业务应用程序或模块时。 跨多种渠道——一些很好的例子是登录服务、搜索选项认证设施等等。

    4- 如果您正在构建一个高度敏捷的应用程序(产品或服务),需要快速交付、创新等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-12
      • 2019-01-22
      • 2014-12-01
      相关资源
      最近更新 更多