调用当前方法的对象是StandardEngine[Catalina],如下图。

1、创建一个daemon线程进行启动,如下图,主要是更换classLoader进行container.backgroundProcess()。系统的classLoader为catalinaLoader在第二章提到过,应用的classLoader为WebappClassLoader。

2、系统的后台程序如下图。主要是判断是否为null和backgroundProcess的执行;fireLifecycleEvent(Lifecycle.PERIODIC_EVENT,null)的事件进行执行,取决于当前container的ls的listeners。

3、应用的后台程序主要如下图。

(1)、进行ContainerBase的backgroundProcess。
(2)、进行periodicEvent(),如下图。主要是进行是否已经上传,和是否已经编译。

本文深入探讨了使用标准引擎Catalina启动应用时的后台进程管理,包括如何通过创建daemon线程和调整classLoader来优化性能。详细介绍了系统后台程序的工作流程,涉及null检查、执行backgroundProcess及周期性事件的触发。同时,阐述了应用后台程序的主要任务,如ContainerBase的backgroundProcess执行和periodicEvent处理,确保应用在后台稳定运行。

被折叠的 条评论
为什么被折叠?



