我正在开发一个 MVC 3 Web 应用程序(.NET Framework 4、IIS7),它充当基于某些遗留技术构建的自定义 ID 卡打印机的前端。无需过多介绍详细信息,当单击“打印”时,Web 应用程序会将带有卡片信息的行写入数据库并返回。然后后端的服务获取该行并处理卡片的实际打印。后端服务完成后,它会使用指示成功或失败的状态列更新该行。
现在,应用程序 POST 数据(通过 jquery ajax),一旦将行写入数据库,控制器就会返回成功,并显示给用户。由于我所描述的设置,这可能会或可能不会真正反映现实,因为服务或卡片打印机可能有问题。
我们有一个新要求,即根据服务对行的更新,使 UI “等待”更新或成功或失败。它已经通过 jquery ajax 调用在客户端以异步方式设置,我不担心在前端处理它。我看过 SignalR 之类的,并涵盖了它的这一部分。
我正在寻找的是有关如何在 Web 服务器端正确处理它的信息(链接和文章,而不是解决方案)。我不想在从早期请求定期轮询数据库时阻止传入的打印请求。从高层次来看,我想知道设置控制器和必要的后台进程的最佳方法是什么:
- 接受请求并将行写入数据库
- 设置后台轮询进程,然后将控制权返回给 ASP.net
- 经常轮询数据库,直到行被更新(或达到超时)
- 回复客户
我不是线程方面的专家,但我知道如果这样做不正确,我会处于危险的境地。任何帮助是极大的赞赏。