タスクスケジューリングフレームワーク - スレッドスケジューリングではありません!
-
01-10-2019 - |
質問
ユーザーが毎日のスケジュールを最適化できるようにするJavaアプリケーションに取り組んでいます。そのためには、「タスク」の最適な時間を計算するのに役立つフレームワークが必要です。
- 必要なリソースとリソースの使用制限
- タスク間の依存関係(ただし、f-> s関係のみで行うことができます)
- より早く、最新のスタートフィニッシュタイム、スラックタイム
- ベースラインと実際の時間 - 実際の開始時間と終了時間を報告し、それに応じて残りのタスクを更新することができます
いくつかの明確化:私はこれらのガントを描くためのフレームワークも、特定の問題ドメイン(教室など)を扱うフレームワークも、スレッドスケジューリングを扱うフレームワークではないことを探していません。
ありがとう!
解決
箱から出してあなたのニーズに合うフレームワークはないと思います。ジョブ/スレッドスケジューラを探しているわけではないと言っていることは知っていますが、おそらくあなたの最善の策は、「愚かな」ジョブ/スレッドスケジューリングフレームワークの周りに独自の最適化/優先順位付けコードをロールすることだと思います。 石英 (またはあなたが持っているものは何でも)。 Quartzを使用すると、APIはおそらく最適化基準の項目3と4に役立つ情報を提供できます。さらに、Quartzには「優先度」の概念があるため、最適化された優先度を計算すると、スケジューリングが簡単になります。
あなたがあなたが尋ねることをするフレームワークを見つけた場合、ここに投稿してください - 私は同様の何かを使うことができる他の人がいると確信しています。
他のヒント
を確認できます プロジェクト管理ソフトウェア. 。コードを変更する機能を備えたJavaで書かれている必要があるようです。それは本当にリストを絞り込んでいますが、私は簡単なスキャンをしました、そして、私はそれらの少なくとも2つが役立つことができるのを見ます(Endeavorとproject.net)。
おそらくあなたが必要とするのは、最適化されたスケジュールを生成するために進化的/遺伝的アルゴリズムのようなものでしょうか?
はいの場合、この時計職人のフレームワークを見ることができます。http://watchmaker.uncommons.org/
進化的/遺伝的アルゴリズムにより、スケジュールのプールをランダムに生成します。主な焦点は、生成された各スケジュールを評価するためのスコアリング基準を定義することです。次に、それを(生成されたスケジュール)は、あなたにとって十分に最適になるまで、世代から世代へと進化します。