1

私は Java 開発者であり、従来の Grails アプリケーションを使用する必要がありました。コントローラー クラスと多数の Java クラスがあります。コントローラーには、Java クラスで記述されたタスクを開始/停止するメソッドがあります。そのために a を使用しScheduledExecutorServiceています。

問題は、アプリケーションが再デプロイされるたびにhttp://application/controller/start、スケジューラを初期化するために呼び出す必要があることです。このcontroller.start()メソッドは、アプリの起動時に 1 回呼び出されるようにします。どうすればそれを達成できますか、またはこれを行うためのより良い方法はありますか?

4

1 に答える 1

5

このメソッドをサービスに入れることをお勧めします。アプリケーションの起動後、コントローラーと Bootstrap.groovy の両方からサービスを呼び出すことができます。サービスで標準の @PostConstruct を使用してプロセスを開始することもできます。

ビジネス メソッドは、コントローラーではなくサービスに配置する必要があります。

本当にコントローラーを使用する必要がある場合は、Bootstrap.groovy からこれを試してください。

new Controller().start()

テストする環境はありませんが、問題はないはずです。

于 2013-02-19T08:50:00.923 に答える