Raymond Hettingerはsnippetを投稿しました。ここでは、特定のレート(N回/秒)で関数を呼び出すために、標準のPythonライブラリで使用できるschedモジュールを使用しています。私はJavaに相当するライブラリがあるのだろうかと思います。Pythonのschedモジュールに相当するJavaはありますか?
答えて
java.util.Timerを見てください。
あなたはまた、はるかに強力である。ここで春 と組み合わせ で使用することができクォーツは、ここexample
であると考えることができ、使用here
の例は私の同等が使用している見つけることができますコードのjava.util.Timerは、あなたが
package perso.tests.timer;
import java.util.Timer;
import java.util.TimerTask;
public class TimerExample extends TimerTask{
Timer timer;
int executionsPerSecond;
public TimerExample(int executionsPerSecond){
this.executionsPerSecond = executionsPerSecond;
timer = new Timer();
long period = 1000/executionsPerSecond;
timer.schedule(this, 200, period);
}
public void functionToRepeat(){
System.out.println(executionsPerSecond);
}
public void run() {
functionToRepeat();
}
public static void main(String args[]) {
System.out.println("About to schedule task.");
new TimerExample(3);
new TimerExample(6);
new TimerExample(9);
System.out.println("Tasks scheduled.");
}
}
クォーツは、事実上すべてのJava EEまたはJava SEアプリケーションと統合することができるフル機能を備えた、オープンソースのジョブスケジューリングサービスである、または側面に沿って使用を見てみましょう - 最小のスタンドから最大規模の電子商取引システムへの単独アプリケーションの導入
java.util.Timer classはどうですか?
あなたは軽量のオプションがScheduledExecutorServiceあるサンプルコードhere
を見つけることができます。
Pythonのスニペットとほぼ同等のJavaコードは次のようになります。
- が
- が返さ将来をどうするかを決定するコールバックインタフェースを定義します。
private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); public ScheduledFuture<?> newTimedCall(int callsPerSecond, Callback<T> callback, T argument) { int period = (1000/callsPerSecond); return scheduler.scheduleAtFixedRate(new Runnable() { public void run() { callback.on(argument); } }, 0, period, TimeUnit.MILLISECONDS); }
演習は読者に任せます
- 実行者をシャットダウンすることを忘れないでください。
+1恐らく最良の解決策です。面白いことに、Javaの抜粋はPythonに相当するものではありません。 – helpermethod
ありがとう! –
方法についてjava.util.Timer
をmentionnedスニペット? this related answerを参照してください。
- 1. JavaのAWT Robotクラスに相当するPythonはありますか?
- 2. Pythonのprintfハッシュ置換に相当するJavaはありますか?
- 3. perlのmodule-starterに相当するpythonはありますか?
- 4. pythonの__getattr__メソッドに相当するjavascriptはありますか?
- 5. Python/Djangoに相当するPHPのhash_hmacはありますか?
- 6. JavaのFile.separatorに相当するC#はありますか
- 7. TwitterのOstrichライブラリに相当するJavaはありますか?
- 8. OpenSSLのbn_rand_rangeに相当するJavaはありますか?
- 9. Java用ソースアウトライナーに相当するものはありますか?
- 10. PHP-FPMに相当するPythonはありますか?
- 11. 'which'コマンドに相当するPythonはありますか
- 12. プリフューズビジュアライゼーションツールキットに相当するPythonはありますか?
- 13. HighLineに相当するPythonはありますか?
- 14. getcharに相当するJavaはありますか?
- 15. excel vlookupに相当するJavaはありますか?
- 16. unputcに相当するJavaはありますか?
- 17. Python 3相当のConfigモジュール
- 18. Objective-CのstringWithUTF8Stringに相当するJavaがありますか?
- 19. JavaのJavascriptの「some」メソッドに相当するJavaはありますか?
- 20. Javaにepoll相当版はありますか?
- 21. Pythonのstr.strip()に相当するJava
- 22. PythonにはRakeに相当するものはありますか?
- 23. JavaにTweenMax相当のものがありますか?
- 24. JavaのC++からgetch()に相当するものはありますか?
- 25. Python repr()に相当するJava?
- 26. .Net PixelFormatにはJavaに相当するものがありますか?
- 27. Java/Androidに#IFと#CONST .NETに相当するものはありますか?
- 28. JavaのガラスパネルのAndroidに相当するものはありますか?
- 29. Pythonの `if __name__ == '__main __'`に相当するPerlはありますか?
- 30. Rのqchisq関数に相当するPythonはありますか?
TimerクラスとQuartzライブラリの両方は、特定の時間にジョブをスケジュールするか、N時間単位ごとに実行するcronのようなインターフェイスを提供しています。私が必要とするのは、特定のレートを達成するためにタスクをスケジュールするスケジューラです。時間単位ごとにN個の関数(メソッド)呼び出し。スニペットのように@Tichodroma – dkart
@ dkartを投稿しました。私の答えでわかるように、あなたが期待している振る舞いを持つアプリケーションを作成するのは簡単です...何かを見逃していない限り、 –
たくさんの@C.Champagne私はこれが私が必要とするものだと思います! – dkart