問題タブ [spring-scheduled]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Spring Scheduler は同時代替を許可しない
Quartz でタスクをスケジュールする場合、失火と再スケジュールを設定できます。これは、30 分ごとに実行されるジョブがあり、潜在的にバックログがあり、ジョブが 30 分以上実行されるシナリオ例で使用できます。同じジョブが 2 回実行されるのを防ぐには、@DisallowConcurrentExecution
. ジョブが完了すると、 を使用してキューに入れられた 2 番目のインスタンスが実行されsimpleSchedule().withMisfireHandlingInstructionNowWithExistingCount()
ます。
現在、Spring Scheduler には、このきめの細かい機能はないようです。30 分ごとにスケジュールするか、前のジョブが完了してから 30 分待つかのオプションのみがfixed-rate
あります。fixed-delay
単一のスレッドに制限するハンマー ルートを使用せずに、同時に実行する他のバッチ ジョブのスレッド数を増やしたいので、Quartz の動作を再現する最良の方法は何でしょうか?
java - 複数のサーバーノードでの Spring スケジューラー
cron を使用して Spring スケジューラを使用し、5 分ごとにタスクを実行しています。これで、7 つの Websphere ノードを持つロード バランサが実装されました。また、アプリケーションを 7 つのノードすべてに公開する際に多少の遅延があるため、すべてのノードでスケジューラ ジョブが同時に実行されていません。スケジュールされたジョブをすべてのノードで同時に実行するにはどうすればよいでしょうか (すべてノードは同じシステム時刻を持っています)
java - 削除されたオブジェクトはカスケードによって再保存されます (関連付けから削除されたオブジェクトを削除します) - サービス メソッドの呼び出しに関する問題
関連から子オブジェクトを削除するという奇妙な問題に直面しました。
ここに私の最初のオブジェクトOrderがあります:
これが私の2番目のオブジェクトExchangeTransactionです:
関連するすべての ExchangeTransactions を含む Order を削除したいと考えています。
コントローラーを介して削除操作を実行すると、すべて正常に動作します。コントローラー内のコードは次のとおりです。
@Scheduled サービスによって削除操作が実行されると、次のエラー メッセージが表示されます。
ERROR [org.springframework.scheduling.support.TaskUtils$LoggingErrorHandler] [] pool-3-thread-1 スケジュールされたタスクで予期しないエラーが発生しました。org.springframework.dao.InvalidDataAccessApiUsageException: 削除されたオブジェクトはカスケードによって再保存されます (関連付けから削除されたオブジェクトを削除します): [currencyexchange.model.ExchangeTransaction#2];
サービス オブジェクト内のコード:
DAO 内のコード:
更新: これは @Scheduled の問題ではありません。コントローラーから deleteInactiveOrders() を呼び出すと、同じエラーが発生します。
java - Spring で 1 回だけ実行される cron 式を記述する方法またはタイマーを設定する方法は?
バックエンドJava アプリケーションから毎日朝に Android アプリにプッシュ通知を送信しています。Spring-MVC
このために、cron ジョブを作成し、 WebConfigで Bean を初期化しました( @EnableScheduling
)。この Bean は、毎日朝に通知を送信します。
しかし、ユーザーがそれを読まない場合は、夕方の特定の時間に別の通知を送信する必要があります。そうでなければ、私は何も送るべきではありません。Cron ExpressenまたはSchedulerを作成する方法、または特定の時間に1回だけ、その日にのみ送信するようにタイマーを設定する方法は?