私はそれを自分で開発する前に、特定の機能が設定されているJavaタスクスケジューラを探しています。Javaの巧妙なタスクスケジューラとエグゼクティブをお探しですか?
それは、スケジューラのそれほど多くはないのですが、今、実行することができますセット(T)にどのタスクを決定するロジックゲート(例えばThreadPoolExecutorにオフに渡される)とタスクは、いくつかの将来の状態を待たなければなりません。
これは私が実現したいものの一例である:各タスクに関連付けられている可能性があります考えてみましょうさまざまな属性:
- はFoo:Fooのタスクは、1度に1つしか実行することができ、そうT. foo2は、実行容量がどれくらいあるかにかかわらず、T.foo1が完了するまで開始できません。
- バー:バータスクには同時実行制限がないため、スケジューラは風に注意を払い、実行キューに直接T.bar1〜T.barNを送信できます。
- タスクは、属性のFooとバーを持つものとしてマークされている場合は、フー属性は、スケジュールに関して優先されます。
誰でもこのようなフレームワークを知っていますか?
ありがとうございます!
//ニコラス
こんにちは、速いレスポンスグレー!私は属性の並行性のために設定されたプールを指定する考えが好きです。しかし、私が発明した属性は恣意的なものなので、私の想像では、フレームワークは、名前付き属性ごとに制約が何であるかを宣言的に定義する手段を提供します。しかし、カバーの下では、必要な構造を動的に拾い上げた後、あなたが概説したものとまったく同じことが起きるかもしれません。 – Nicholas
@Nicholasええ、それはずっと難しいです。あなたは 'Foo'と' Bar'の両方に何らかの 'createExectuorForMe()'インタフェースメソッドを実装することができますし、クラスの同時マップを 'ExecutorService'に保つことができますが、それは複雑すぎるかもしれません。オブジェクトを送信すると、クラスを検索し、エグゼキュータがなければ、そのオブジェクトまたはその何かの 'createExectuorForMe()'メソッドを呼び出します。 – Gray