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