**分前に1回だけ**を実行するというシステムを作りたいときに、どういう実装をするのがベストなのでしょうか?
一つ思いついたのは、1分ごとに、チェックを走らせ閾値を超えたら、指定のアクションを実行し、実行したら実行済みであることをファイルなりDBなりに保存するというシステムです。
しかし、プログラミング初心者なので、ファイルやDBが必要になってしまう点など少しスマートでは無いのかなと思ってしまいます。
抽象的な質問で申し訳ありませんが、何かいい方法があったらご教示頂けるとありがたいです。
「何」に対して「**分前」なのでしょうか?「ユーザーがボタンを押す5分前に実行」とか言われても、タイムマシンの開発から始めないと難しいです。
指定時刻の**分前です。修正しました。
「18時23分の8分前に」とか指定すると言うことですか?「18時15分に」と指定時刻ちょうどに走らせると何が違うのでしょうか?指定時刻に何か実行するならタスクスケジューラなりcronに登録すれば良いだけで終わる気がするのですが、そういうわけにはいかないところを具体的に質問に追加して欲しいです。
あと、実行環境が分からないと具体的な助言は難しくなるかと。外部記憶がいやならデーモン作って管理したら? って話になりそうだけど、リカバリーを考えたらなんらかの外部記憶に頼ることになると思うなあ。
何分前であろうがその時間であろうが何分後であろうが、結局ある特定の時刻に実行するということに変わりはないわけで、そういう指定の仕方をしたいというのは、人がそういう設定の仕方にしたほうがわかりやすいということだけのような気がしますが、そうですか?もしそうならユーザーI/Fと処理は分けて考えるべきだと思います。何かを実行する仕組みそのものは指定時刻に実行するだけなのでWindowsならタスクスケジューラで十分なような気がします。