我有一个ASP.Net应用程序,需要有一些工作由另一台机器执行。为此,我将在两台机器都可见的队列中留下一条消息。工作完成后,第二个队列上会留下一条消息。
我需要ASP.Net应用程序定期检查第二个队列,看看是否有任何任务完成。
除了这样的循环,最好的地方在哪里?的Global.asax?
我记得在某个地方读过你可以得到一个间隔后调用的函数。那会合适吗?
答案 0 :(得分:1)
我认为这是定期完成的,而其他一些进程会将这些项目放在队列中?
如果是这种情况,您可以在Global.asax中放置一些东西,在应用程序启动时创建一个单独的线程来监视队列,您可以使用一个计时器让该线程休眠X秒,然后检查结果。
答案 1 :(得分:1)
为了在asp.net上实现定期任务,我发现了两种可接受的方法:
在这两种方式中,您都需要确保即使发生错误,您的线程也会继续工作。您可以在SessionStart和BeginRequest中放置一个恢复代码来检查您的线程或缓存项是否存在,并在发生某些事情时更新它。