アプリ版:「スタンプのみでお礼する」機能のリリースについて

cgiの方には初めて書き込みます、urizakaともうします。

フォームで入力した内容を、ある決まった時間になるとメールで
会員に送信するというメールマガジンシステムを作りたいのですが、
この掲示板の情報や本の情報によるとcronを作って24時間プログラム
が動く状態にするという情報しかありません。
 しかし、できればメールを生成して、そのときにヘッダー等に
メールを送信する時間をあらかじめ入力しておいて、決まった時間に
なるとメールが会員に送信されるといったシステムにしたい、つまり
cronなしのシステムを作りたいのですが、そのようなことはCGIで可能
なのでしょうか?
すみませんが、ご存知でしたら教えてください。
よろしくお願いします。

A 回答 (2件)

cron 等ナシでは不可能です。


web サーバのタイムアウト設定を 24 時間とかにして、その時間が来るまで、CGI の処理を停止させておけばアリかも知れませんが、サーバのタイムアウトがあると、CGI に強制終了 (kill) のシグナルが発せられるので、CGI 自体のプロセスが死にます。
cron は、別に 24 時間云々とかじゃなくて、cron が実装されている環境であれば基本的に web サーバと同じく「ずっと動いている」もんです。
それが当たり前です。
なので、常時サーバに微弱な負荷は掛かってます。
何故、cron じゃダメなんですか?

ちなみに、毎日毎日同じ時間に配信するんじゃなければ、at コマンドを用いたほうが、不必要な負荷は掛けないと思います。

1. フォームから受け取ったデータを下にメールを生成し、ファイル化
2. sendmail を at コマンドから CGI をトリガーにキックして、指定時間に配信するように設定完了。
3. あとはブラウザを閉じようが、メシ食おうが寝ようが、その時間にメールが配信される。

これじゃダメなんでしょうか?
    • good
    • 0

 極論からいって、「CGIはそのようなものではない」というのが答えです。



 CGIは「閲覧者の返答に答えるだけ」のものですので、タイマーをセットするのはCGIの範疇外です。

 あなた自身が決まった時間にボタンを押す、とか、あなた自身が使っているパソコンにタイマーをセットしておき、時間になると自動的に特定のURLにアクセスする、というプログラムとかなら可能です。

 ただし後者は、その時間にパソコンが起動されている必要がありますし、フレッツなどの常時接続環境が必要です(無人でインターネットにアクセスするわけですので)。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!