人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

JavaのTimerクラスを使って、毎日、
1時、2時、3時にタスクを実行したいです。
どのようにしたら、可能でしょうか?

●質問者: yukimura_komura
●カテゴリ:コンピュータ 学習・教育
✍キーワード:Java クラス タスク 毎日
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● xiang2
●0ポイント

http://www.02.246.ne.jp/~torutk/javahow2/timer.html

Timerを使う。周期的に実行したり、一定時間後に実行したり

このページは参考になりますか。

◎質問者からの返答

ありがとうございます。

ただ、もう少し時間の指定方法を詳しく記入してあれば助かります。

何秒後にとか、何時間後にとかはあるんですが、

1時に、2時に実行などが、なかなか見つからないので、困ってます。


2 ● xiang2
●100ポイント

http://www-6.ibm.com/jp/developerworks/java/040116/j_j-schedule....

IBM developerWorks Japan : お詫び

リスト2. AlarmClockクラス

が参考になると思います

http://www.dream-seed.com/linux/cron.html

OSの機能でUNIX系ならcron、Windowsならタスクスケジューラを使う手もあります。


3 ● shampoohat
●0ポイント

http://members.jcom.home.ne.jp/tmatsukawa/source/ScheduleCon...

ERROR@NetHome

「Javaの技術者に質問です」とか書いた方がいいかも知れませんね。

URLのように、TimerTaskを実装したクラスの側で、時刻の判定が必要になります。このとき、実行漏れがなくなるよう、前に呼び出された時刻を記憶し、起動予定時刻が、前に呼び出された時刻以上、現在時刻未満であるなどの起動条件にします。

不明点があれば再回答します。

◎質問者からの返答

そうですね。Javaの技術者さんに質問です。と記入するようにします。

Timerクラスのscheduleメソッドの引数で、

1時とか、2時とかは指定できないのですか?


4 ● shampoohat
●300ポイント

http://www.hatena.ne.jp/awindow

> そうですね。Javaの技術者さんに質問です。と記入するようにします。

はてなでは書いた方が良いです。

ただし、最初の回答者の方の2番目の回答は良回答です。(この回答は、私が最初の回答をしたタイミングでは開かれていませんでした。最初の回答者の方の2番目の回答だけあれば情報としては十分です。ただし、はてなでは、安心感を得るために少し多めに開きたいというのはありますが)

http://java.sun.com/j2se/1.4/ja/docs/ja/api/

Java 2 $B%W%i%C%H%U%)!<%`(J SE v1.4.0

> Timerクラスのscheduleメソッドの引数で、

> 1時とか、2時とかは指定できないのですか?

こんなことは、はてなで聞かずに、まず「Javadoc」を参照したほうが良いです(URL)。

http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/util/Timer....

Timer (Java 2 $B%W%i%C%H%U%)!<%`(J SE v1.4.0)

(java.util.TimerTask,java.util.Date,long)

> 1時とか、2時とかは指定できないのですか?

できます。ただし、「何年何月何日何時何分何秒」に、最初の1回を行い、次は一定間隔です。

最初の方の2番目の回答のURLにも、

「ただ、Javaのタイマー・フレームワークは多くのアプリケーションで要求されるスケジューリングの用途には十分とは言えません。毎日毎日、同じ時間に繰り返すタスクであっても、夏時間があるとその始まりと終わりで時間のずれが発生するので、Timerを使って直接スケジューリングすることはできません。」とあります。ですので、「1時とか、2時とか」という指定をするのではなく、AlarmClockクラスを参考にしたプログラミングをするのが正しいと思います。

http://www.hatena.ne.jp/awindow#

なお、以前このようなタイマ系のモジュールを作ったことがありますが、実用的には、cron / タスクスケジューラの方が良い場合もあり、むしろその場合も多いと思います。

今回、Javaの学習ということもあり、そのようなものを敢えて作ろうとしていると解釈して回答しました。

◎質問者からの返答

ありがとうございます。いろいろ助かりました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ