从MVC应用程序自动化逐步过程

时间:2013-03-13 16:22:55

标签: asp.net asp.net-mvc-4

我们在网络应用程序中使用SOLR进行自动完成搜索。我们有一个夜间进程,它将一堆数据添加到我们的数据库中,一旦该进程完成,我们需要将数据从数据库导入我们的SOLR服务器。

目前,导入过程按以下顺序手动完成:

  1. 检查ondeck SOLR服务器是否空闲
  2. 告诉ondeck服务器完全导入数据,服务器状态为“忙”
  3. 每隔一段时间轮询ondeck服务器,当它完成时,状态将恢复为空闲状态。
  4. 使用实时SOLR服务器交换ondeck服务器(包含新信息)。
  5. 在我们的数据库上运行存储过程。
  6. 我们的网络应用程序上有一个管理工具页面。我想要做的是在该页面上放置一个按钮来启动该过程(通过AJAX调用我们的Web应用程序)并告诉用户该过程已经启动。整个过程大约需要一个小时,我不能让AJAX调用运行一个小时,然后返回页面告诉用户该过程已完成。

    我需要异步完成它。该过程必须启动,一旦它被启动,它通知用户它已经开始,然后应用程序继续等待该过程的每一步,然后调用下一步直到它完成。 MVC 4中的代码是什么样的?我一直在asyncawait上查看MSDN上的教程,但我有点困惑。

1 个答案:

答案 0 :(得分:0)

我可能会建议您查看Websokets(如果您必须支持旧版浏览器,则需要长时间查看)。有一个非常好的库SignalR,它将为您处理所有复杂的工作人员。如果客户端浏览器支持它,则使用websockets;如果不是,则自动切换到长轮询。它在互联网上有很好的documentation和很多expamles。