我们在 Web 应用程序中使用 SOLR 进行自动完成搜索。我们有一个每晚的进程,将一堆数据添加到我们的数据库中,一旦该进程完成,我们需要将数据库中的数据导入我们的 SOLR 服务器。
目前,导入过程按以下顺序手动完成:
- 检查 ondeck SOLR 服务器是否空闲
- 告诉 ondeck 服务器做一个完整的数据导入,服务器状态是“忙碌”
- 每隔一段时间轮询 ondeck 服务器,当它完成时,状态恢复为空闲。
- 将 ondeck 服务器(带有新信息)与实时 SOLR 服务器交换。
- 在我们的数据库上运行存储过程。
我们的网络应用程序上有一个管理工具页面。我想要做的是在该页面上放置一个按钮来启动该过程(通过对我们的 Web 应用程序的 AJAX 调用)并告诉用户该过程已被启动。整个过程大约需要一个小时,所以我不能让 AJAX 调用运行一个小时,然后返回页面告诉用户该过程已完成。
我需要它异步完成。该过程必须被启动,一旦它被启动,它就会通知用户它已经开始,然后应用程序继续等待该过程的每个步骤,然后调用下一步直到它完成。MVC 4 中的代码如何实现这一点?我一直在看 MSDN 上的教程async
,await
但我有点困惑。