我运行了一个tomcat 6.20实例,并希望通过后台线程发送电子邮件,以防止电子邮件发送功能阻止请求。
有什么方法可以在后台执行线程,同时仍然允许正常的页面流动。
该应用程序是用ICEfaces编写的。
感谢。
答案 0 :(得分:3)
Executor
(或其他工厂方法之一)创建java.util.concurrent.Executors.newCachedThreadPool
。java.lang.Runnable
Runnable
提交至Executor
这将在后台执行发送。记得在启动时创建一个Executor,并在所有请求中共享;不要每次都创建一个新的Executor(你可以,但它会有点慢和浪费)。
答案 1 :(得分:0)
发送电子邮件代替 element = [1,7,7,7,7,9,9,1,0]
i = 1
counter = 1
max_frag =0
while element[i] != 0:
i+=1
if element[i]== element[i-1]:
counter+=1
else:
max_frag = max(max_frag,counter)
counter = 1
print max_frag
。将您的输出放在Thread.sleep()
。
sendRedirect()
答案 2 :(得分:-1)
我找到了出路。这些标签
@PostConstruct()
和
@PreDestroy()
在servlet中创建两个返回void且不接受任何参数的方法。 将第一个标记放在第一个方法的正上方,将第二个标记放在第二个标记的上方。
在实现类开始响应Web服务客户端之前,容器会调用@PostConstruct方法。
在从操作中删除端点之前,容器会调用@PreDestroy方法。
PostConstruction()方法中的使用runnable接口创建你的线程,并让它在无限循环中运行,除非某个布尔变量的值为false。
使用PreDestroy()方法将布尔变量设置为false。