我是 Apache wicket 的新手。据我了解,每个连接到我网站的用户都有一个新线程。我正在制作一个关于事件(如 facebook 事件)的网站,用户可以在其中加入和离开它们,我想创建一个线程,每小时检查一次所有事件,并在事件即将发生时通知事件参与者。我只希望所有用户都有 1 个线程,或者即使没有用户连接,它也可以在服务器端运行,而不是让用户拥有单独的线程。我该怎么做?
我自己已经找到了答案,我需要在 Application.init() 方法中放置一个执行我想要的新线程。
我建议使用 org.apache.wicket.IApplicationListener 来处理一些应该在后台完成的额外内容。只需在 onAfterInitialized 中启动您的线程并在 onBeforeDestroyed 中停止它。
但是,如果您使用 EAR/J2EE/Sprint,则有更好的方法来执行此类任务:@Scheduled(在 Spring 中)或查看:http ://docs.oracle.com/javaee/6/tutorial/doc/bnboy .html