puddingプログラミングの記事がメインのブログです。Tasksについて調査しました。Batchという仕組みがあるのですが、やや大仰で使いにくいです。Web系システムでの利用だと単純なスケジューリングのTaskで十分なことが多いと思います。そんなわけで@EnableSchedulingのcronの機能について調査しました。5秒以内で終わるTask5秒以上かかるTask(10秒かかる)5秒以上かかるTask(10秒かかる)でFuture利用ソースコード全部入りはここに置いてます。本当はコメント化で対処したくなかったのですが、mainメソッドやCommandLineRunnerやApplicationRunnerがあると同時に動いてわけがわからなくなるので、コメント化で対処してしまっています。引数でやればいいじゃんという話もありますが、面倒でした。implementsしているのはそのためです。Javaラーにありがちですが、importは省略しています。end.こんな感じになります。end.となり、ログをよく見ると、実行を待ち合わせてくれます。本処理が10秒かかる場合、次回の起動は終わるまで待ってくれます。5秒以上かかるTask(10秒かかる場合)でFuture利用のケースということで、別スレッドで本処理を起動してみました。別スレッドということなんで、処理は当然、待ち合わせなくなるので、Springが決まった時間に起動をかける当たり前の挙動になります。いえ、スレッドの多重起動が起きないように終わるまで次回の処理を起動しないように制御はしています。こちらのメリットはプログラム自体が異常停止しているかそうでないか、ログを見ると一目瞭然ということでしょうかちなみにFutureTaskは別クラスにする必要は特にないんですが、GitHubにあげるソースコードで見にくくなるので、とりあえず分けてます。end.ちょっとわかりにくいですが、必ず5分に1回呼び出されています。自分でお手軽バッチを作るなら3のパターンかなと思った次第です。しても、Javaのマルチスレッドプログラミングはマジで便利...。C++だとめんどくさすぎる。ちなみにRx系は複雑度が高すぎな気がしていまいち好きになれない...。Bootですが1プロジェクトに別にいくつもエントリーポイントがあってもよい。コマンドラインからの起動の時は同時に動きます。本当に一緒か?と思い調べてみました。next()を呼び出すと次の時刻を返してくれるっぽい。前者で書くほうが良さそう。ちなみに普通のcrontabはどうなのかは知りません...。DesktopによるGitLab構築方法の紹介です。Bootのapplication.ymlの仕組み素敵ですよね。はてなブログPro睡眠プログラマーです。1引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。