gpt4 book ai didi

asp.net - 通过 ASP.NET 调用的长时间运行任务的模式

转载 作者:行者123 更新时间:2023-12-01 05:41:04 25 4
gpt4 key购买 nike

我需要从 ASP.NET 页面调用一个长时间运行的任务,并允许用户在它执行时查看任务进度。

在我目前的情况下,我想将一系列数据文件中的数据导入数据库,但这涉及大量处理。我希望用户查看任务在文件中的位置,以及在此过程中遇到的任何问题。

由于处理资源有限,我想对这项服务的请求进行排队。

我最近查看了 Windows Workflow 并想知道它是否可以提供解决方案?

我正在考虑一个可能如下所示的解决方案:
ASP.NET AJAX page -> WCF Service -> MSMQ -> Workflow Service *or* Windows Service
有没有人有任何想法,经验或以前做过这种事情?

最佳答案

我有一本书明确介绍了如何集成 WF(工作流)和 WCF。显然,在这里发帖太多了。我认为你的问题应该得到更长的答案,而不是在这个论坛上很容易得到完整的回答,但是 Microsoft offers some guidance .

在 Google 上搜索“WCF 和 WF”会出现大量结果。

我确实有一个正在开发的应用程序,我们使用 MSMQ 使用了类似的过程。我们的想法是在产品召回或影响大量商店的已知问题的情况下向我们所有的商店发送紧急消息。它被开发和测试OK。

由于业务需求,我们最终没有使用 MSMQ - 我们需要知道是否没有立即收到消息,以便我们可以调用商店,而不是让商店在他们的 PC 能够从队列。但是,它确实工作得很好。

我上面链接的文章是一个很好的起点。

我们当前的设计,也就是我们上线的设计,完全符合您对 Windows 服务的要求。

  • 我们有一个网页来输入消息和选择分发列表。 - 这些都保存在数据库中
  • 我们有一个单独的 Windows 服务(我们称之为 AlertSender),它轮询数据库并检查新消息。
  • 商店级 PC 有一个 Windows 服务,该服务托管一个 WCF 客户端,用于监听消息(AlertListener)
  • 当 AlertSender 发现需要出去的消息时,它会将它们发送到 AlertListener,它负责将消息显示给商店并播放警报声音。
  • 发送消息时,AlertSender 更新数据库中消息的状态。
  • 当商店收到消息时,一位同事输入他们的员工编号并单击按钮以确认他们已收到消息。 (对我们来说至关重要的业务需求,因为如果所有商店都没有收到消息,我们可能需要亲自调用他们,让他们从货架等上移除受污染的产品)
  • 最后,我们的管理部分有一个与 AlertId 相关的报告 (ASP.NET),该报告显示所有待处理的消息及其状态。
  • 关于asp.net - 通过 ASP.NET 调用的长时间运行任务的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5512889/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com