1

マルチスレッドのScalaアプリケーションがあり、オブジェクトに対してshutdown()メソッドを呼び出すシャットダウンフックがあります。残念ながら、これは信頼できないようです。多くの場合、SIGINTの処理に失敗し、無名関数でNoClassDefFoundErrorをスローします。

このシャットダウンハンドラーをより堅牢にするにはどうすればよいですか?

4

2 に答える 2

1

1つの提案:shutdown()フックを直接登録するのではなく、ShutdownManagerオブジェクトを作成してshutdown()フックを登録させます。アプリケーションオブジェクトは自分自身をに追加しShutdownManager、トレイトまたは関数オブジェクトを使用して、アプリケーションオブジェクトのシャットダウンメソッドを呼び出すことができます。

于 2012-07-06T02:51:13.177 に答える
1

フックに必要なすべてのクラスを次のいずれかでプリロードします。

Class.forName( "YourObject")またはClass clasz = YourObject.class

于 2014-03-26T14:56:34.857 に答える