質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

Q&A

1回答

198閲覧

**分前に1回だけ**するというシステムを構築する際の最適方法は何か

huhan

総合スコア6

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

0グッド

0クリップ

投稿2017/08/20 07:34

**分前に1回だけ**を実行するというシステムを作りたいときに、どういう実装をするのがベストなのでしょうか?

一つ思いついたのは、1分ごとに、チェックを走らせ閾値を超えたら、指定のアクションを実行し、実行したら実行済みであることをファイルなりDBなりに保存するというシステムです。

しかし、プログラミング初心者なので、ファイルやDBが必要になってしまう点など少しスマートでは無いのかなと思ってしまいます。

抽象的な質問で申し訳ありませんが、何かいい方法があったらご教示頂けるとありがたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

raccy

2017/08/20 07:56

「何」に対して「**分前」なのでしょうか?「ユーザーがボタンを押す5分前に実行」とか言われても、タイムマシンの開発から始めないと難しいです。
huhan

2017/08/20 07:57

指定時刻の**分前です。修正しました。
raccy

2017/08/20 08:02

「18時23分の8分前に」とか指定すると言うことですか?「18時15分に」と指定時刻ちょうどに走らせると何が違うのでしょうか?指定時刻に何か実行するならタスクスケジューラなりcronに登録すれば良いだけで終わる気がするのですが、そういうわけにはいかないところを具体的に質問に追加して欲しいです。
takasima20

2017/08/20 08:26

あと、実行環境が分からないと具体的な助言は難しくなるかと。外部記憶がいやならデーモン作って管理したら? って話になりそうだけど、リカバリーを考えたらなんらかの外部記憶に頼ることになると思うなあ。
PineMatsu

2017/08/22 09:12 編集

何分前であろうがその時間であろうが何分後であろうが、結局ある特定の時刻に実行するということに変わりはないわけで、そういう指定の仕方をしたいというのは、人がそういう設定の仕方にしたほうがわかりやすいということだけのような気がしますが、そうですか?もしそうならユーザーI/Fと処理は分けて考えるべきだと思います。何かを実行する仕組みそのものは指定時刻に実行するだけなのでWindowsならタスクスケジューラで十分なような気がします。
guest

回答1

0

例えば、
・インターバル1分の通知専用のタイマー又はスレッドを作成して監視
・「指定した時間」以上になったなら、指定のアクションを実行
・実行が終了したら、通知専用タイマー又はスレッドを終了させる

**分前に1回だけ、が複数、或いは毎日あるのなら
・インターバル1分の通知専用のタイマー又はスレッドを作成して監視
・「指定した時間」以上になったなら、指定のアクションを実行
・実行が終了したら「指定した時間」を次の実行時間(毎日なら翌日の指定時間)に変更

投稿2018/05/29 10:00

nak777

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問