あるコードを定期実行したい
サーバーの状況を定期的にPOSTするソースコードを書きたい。
threadでsleepして待つ方法(以下)なども考えたけど、そうじゃない感じがするので調べてみた。
|
|
どうやらスケジューラがあるらしい。
調べた感じいくつか方法があるみたいだけど、簡単なほうを実装しよう。
スケジューラを作成する
スケジューラを実装するためにはBukkitRunnableを継承すればいいらしい。
それっぽいクラスを作ってみる。
|
|
クラスを呼び出す
BukkitRunnableを継承したクラスを作成するだけではだめなんで、どこかのタイミングで呼び出す必要がある。
今回の場合であれば、特に指定はないので適当に起動したタイミングで呼び出そう。
|
|
こんな感じでクラスを呼び出せばおしまい。
runTaskTimerに渡してる引数は第一引数にプラグイン自体のインスタンス、次に遅延実行するTick数、最後に定期実行するTick数だそうです。
一秒20Tickなので40Tickは2秒です。(トートロジー)
ちなみにこれにAsynchronously
をつけてrunTaskTimerAsynchronously
にすると、非同期実行してくれるみたい。
なんかルールがあるみたいですが、まぁ今はどうでもいいや。
おわりに
いい感じに実装できたので、後々わかったことがあれば追記します。