【问题标题】:How to run task in the background in web application?如何在 Web 应用程序的后台运行任务?
【发布时间】:2016-09-03 06:33:53
【问题描述】:

我在 JSP 中有一个提交按钮。此按钮调用 2 个函数:function A(…)function B(…)。后者向许多用户发送电子邮件,可能是 1000 个用户或 2000 个用户。当我单击提交按钮时,页面会一直加载,直到电子邮件发送给所有用户。这需要太多时间。

有没有办法让页面加载到function A 完成,然后在后台运行function B?或者有没有人有任何其他的建议来解决这个问题?

【问题讨论】:

  • @subash 无法通过 ajax 调用解决。
  • 使用Thread 发送电子邮件。
  • ExecutoService 可能会有所帮助
  • @RC。和其他建议使用线程的人:您必须了解触发不受应用程序服务器中的容器管理的新线程的含义。换句话说,不要玩火,至少你知道自己在做什么。

标签: java jsp servlets


【解决方案1】:

通过 AJAX 调用两个 servlet 或 JSP 使其工作。当您单击该按钮时,它会对 servlet_A 进行 AJAX 调用,当您从那里获得响应并将输出放入 DIV 或其他内容时,然后对 servlet_B 进行 AJAX 调用并让它花费多长时间。

与上面评论中所说的相反,AJAX 对此有好处,因为它是异步运行的。您发送请求,每当响应返回时,您都可以使用它或不使用它。

【讨论】:

    猜你喜欢
    • 2016-05-04
    • 2020-11-27
    • 1970-01-01
    • 1970-01-01
    • 2021-12-20
    • 1970-01-01
    相关资源
    最近更新 更多