定期的なレポートジョブを設定しようとしています。レポートはユーザーとのやりとりなしに作成され、アプリケーション開始時にジョブがスケジュールされます。Apache ISISのプログラムによるアクションの呼び出し
バックグラウンドサービスとスケジューラが動作しています。 UIのボタンとしてcreateReportアクションを公開すると、次回ジョブがトリガーされたときにレポートが作成されます。しかし、このレポートは、ユーザーの介入なしに繰り返し作成する必要があります。
私は、プログラムでアクションを呼び出す方法が問題だと思いますか? createReport()をドメインサービスに移動し、@PostConstructアノテーション付きメソッドで呼び出すと例外が発生します(IsisCommandにコマンドを保持しようとしています)。私はアクション呼び出しのために何らかのコンテキストを持っていなければならないと思っていますか?または私はこれに間違った方法で近づいていますか?ありがとう!
@Action(command = CommandReification.ENABLED,
commandExecuteIn=CommandExecuteIn.BACKGROUND)
public Command createReport() {
backgroundService.execute(this).generateReport();
return commandContext.getCommand();
}
@Programmatic
public void generateReport() {
....
}
ありがとうございました!私が必要とした情報だけ。 2番目のアプローチを行ったとうまく動作します。 – user5806139