2011-01-14 12 views
1

質問があります。スケジュールタスクの質問

将来、ある時点でデータが取得されたとします。あなたは私の仕事が1時間で完了し、彼の仕事は1.5時間で完了すると言います。情報はサーバー上で収集されます。どのプログラミング言語か、それをどのように解決するか?したがって、タスクaは1時間に実行され、タスクBは1.5時間に実行されます。私はjavaスケジューラーについて何かを読んだが、これが正しい方法であるかどうかはまだ分かっていない。

どのようなアイデアはありますか?

乾杯

答えて

1

cronがほとんどのUNIXのWebサーバーにインストールされている - あなたは、後で実行するためにタスクを割り当てるためにそれを使用することができます。

+0

どのようなプログラミング言語でも定義できますか? – gabac

+0

あなたのサーバーで実行されるもの。 –

+0

はい、できます。 'man crontab'とあなたが新しい仕事を提出する方法を見てください。 Seもlinux/bsd atで、ワンタイムタスクを「at」に提出する方が簡単です。 – 9000

1

プログラマティックアクセスをお探しの場合は、Quartz - Javaスケジューラをご覧ください。彼らはまた、良いチュートリアルresourceを持っています。

1

これは長時間実行するプロセスであれば、これを達成するためにjavaのScheduledExecutorServiceを使用できます。明らかに、プロセスが終了しても、タスクは失われます。

cronまたはquartzは、より永続的なスケジューラとしても機能します。それぞれに独自のしわがあります。

1

何らかの理由で、このようなシステムを自分で実装することに決めた場合は、ここにその考え方があります。

  • あなたの仕事を守るためのリストを、期日通りに並べてください。
  • ほとんどの時間スリープ状態になるデーモンプロセスを作成します。毎分、またはさらにはsleep()を使用して不規則に。デーモンが起動すると、デーモンはキューからタスクを取得します。タスクの期限が到来すると、このタスクは別のプロセス(またはスレッド)で実行され、キューから削除されます。すべての正当なタスクを開始したら、それは眠りに戻る。
  • 新しいタスクをキューに追加するインターフェイスを作成します。