在我们使用c#的.NET 3.5网站上,用户单击我们网页上的提交,便通过电子邮件地址订阅了我们的报告。不幸的是,此操作大约需要5分钟,用户必须坐下来等待确认。我想做的就是更改它,以便当他们单击提交时,他们会弹出一个对话框,说他们将在订阅通过时收到电子邮件通知,同时我会将订阅操作排队在服务器上的其他位置,以便Web代码中不存在它。你能给我一些方法吗?基本思想是,我想分成两个不同的执行行,其中一个将允许他们仍然浏览我们的网站,另一个将对其进行订阅。我当时想将其拆分为一个新线程,但是我认为Web代码仍然必须等待该线程完成才能执行其他任何操作。我正在寻找想法,最好是可以在同一台服务器上运行的想法。谢谢!

最佳答案

有很多选择,但是基本方法是将站点与提供程序分离。取而代之的是,您将写出一条记录说“用户X正在等待订阅”,然后一个单独的进程将读取该记录并执行实际的订阅,同时将该记录标记为“进行中”。一旦过程完成,记录将再次使用完成的信息进行更新。

您可以使用数据库,消息队列或其他方法来实现。但从根本上说,您的站点仅负责创建记录并检查其状态-与提供者的实际交互将单独处理。

09-10 04:15
查看更多