Tomcat サーバーの起動時にデーモン メール サービス スレッドを開始したいと考えています。そのため、メソッドに @Async アノテーションを付けました。
ApplicationListener インターフェイスを実装するクラスがあります。このクラスから非同期メソッドを呼び出すと、非同期に開始されず、現在のスレッドがブロックされます。そして、スプリングコントローラークラスから非同期メソッドを呼び出すと、ブロックされず、非同期で開始されます。
async メソッドが 1 つのクラスから正常に実行され、他のクラスからは正常に実行されなかったのはなぜですか?
サーバーの起動時に非同期メソッドを実行するにはどうすればよいですか??
前もって感謝します。
編集: InitializingBean インターフェイス、@PostConstruct、init-method アプローチを使用して非同期メソッドを呼び出してみましたが、実行されませんでした。次に、デフォルトの lazy-init が true であることを認識したので、InitializingBean の lazy-init を false に設定します。これで asnyc メソッドが実行されますが、現在のスレッドがブロックされ、もう 1 つの問題に直面しています。サーバーが正常に停止しなかったため、サーバーを強制的に停止する必要があります。