こんにちは。
特定の時間に一日一度だけ、実行したい処理があるのですが記述方法で迷っています。
今考えているのは、タイマーを作成し、10分刻み位で現在時刻を監視しながら、
取得した時刻と設定時刻を比較し、合致すれば処理を実行、処理が被ってしまうので暫くはタイマーを呼び飛ばすフラグを設定するという風に考えています。
しかし、これではなんか冗長というか、他に何か良い方法はないかと思って質問させていただきます。
同様の処理を、こんな風に実装したとか。何か良い方法ありましたらご教授ください。
記述言語はC/C++です。
24時間で一回だけ実行させたい処理の記述方法
Re: 24時間で一回だけ実行させたい処理の記述方法
OSの機能を使えば実現できるのではないかと、勝手に思っています。
Windows:atコマンド
UNIX:cron
Mac OS:知りません
Windows:atコマンド
UNIX:cron
Mac OS:知りません
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: 24時間で一回だけ実行させたい処理の記述方法
Windowsなのでバッチファイルを記述してタスクスケジューラも効果的だなぁとは思っております。
ですが、実行時間をアプリケーション側から簡単に制御出来るようにと考えています、
ですが、実行時間をアプリケーション側から簡単に制御出来るようにと考えています、
Re: 24時間で一回だけ実行させたい処理の記述方法
プログラムでタスクスケジューラアイテムを作成することができますよ。taketoshi さんが書きました:Windowsなのでバッチファイルを記述してタスクスケジューラも効果的だなぁとは思っております。
ですが、実行時間をアプリケーション側から簡単に制御出来るようにと考えています、
Re: 24時間で一回だけ実行させたい処理の記述方法
皆さんありがとう御座います。
lbfuvabさんの方法でテストプログラムを書いてみたところしっくりきたので、
マルチスレッドを実装して別スレッドで動かすようにして、このまま書き進めてみます。
>ISLeさん
そんなことも出来るんですね、APIがあるのでしょうか?
それともsystem関数からatコマンドでしょうか?
lbfuvabさんの方法でテストプログラムを書いてみたところしっくりきたので、
マルチスレッドを実装して別スレッドで動かすようにして、このまま書き進めてみます。
>ISLeさん
そんなことも出来るんですね、APIがあるのでしょうか?
それともsystem関数からatコマンドでしょうか?
Re: 24時間で一回だけ実行させたい処理の記述方法
ITaskSchedulerというCOMインターフェースを使って制御することができます。taketoshi さんが書きました:>ISLeさん
そんなことも出来るんですね、APIがあるのでしょうか?
(追記)
タスクスケジューラ(というかスケジューラサービス)を使うとスリープ状態からでも復帰して実行できますよ。
Re: 24時間で一回だけ実行させたい処理の記述方法
ISLeさん、教えていただいてありがとうございます。
ITaskSchedulerをググって調べてみました。
サーバーに実装する予定なのでスリープ状態から復帰して実行するのは魅力的です。
ITaskSchedulerをググって調べてみました。
サーバーに実装する予定なのでスリープ状態から復帰して実行するのは魅力的です。