2012-01-26 73 views
0

我正在研究将生成大约2000个Excel表的功能。该过程将接受来自前端Web应用程序的输入。我不希望我的web应用程序等待生成excel文件的过程结束。我应该编写一个控制台应用程序并通过Web应用程序或Web服务触发它?这是更好的实施方式吗? 谢谢, 罗希特控制台应用程序或Web服务

+0

为什么不能异步执行 - 在后台线程上启动它。 – Tim

+0

我对线程不太舒服。如果用户在触发进程后关闭浏览器,它会继续在线程中吗? – RRForUI

+0

我不完全确定,但它可能不会。在这种情况下,您可能需要查看一个Web服务,但我会谨慎创建运行时间相当长的Web服务。你可能会更好地考虑其他方式来做到这一点 - 可能会把数据放在数据库中,并有一个工作或SSIS包根据数据启动工作。只是另一个想法考虑。 – Tim

回答

0

我建议保存Excel的根作为数据库中的一个任务,然后有一个后台服务持续运行,检查任务队列,处理它(创建电子表格),然后最后更新作业记录为处理完毕。除了创建工作记录外,您的asp.net应用程序还可以定期或在页面刷新时检查状态。

+0

生成excel的过程每季度只进行一次。这是一个手动过程。不断运行服务会使服务器变慢,因为其他应用程序也驻留在该服务器上 – RRForUI

+0

然后手动运行每3个月生成一次这些文件的工具 - 我不知道该告诉你什么。最接近实现双击的自动化可能是调度它(例如使用任务调度程序)。没有长时间运行的任务是完美适合asp.net应用程序,特别是当应用程序的池保留默认设置时,与应用程序回收/重置相关。顺便说一句,100%的时间完成最少工作的服务甚至不会在体面的服务器上被注意到,只要它耗费的CPU时间(也是唯一的服务器?)。 – 2012-01-26 23:31:45

相关问题