3

イベント (フォーム送信) の 10 分後、PHP でのコードの実行 (たとえば、電子メールの送信) を遅らせる必要があります。

これを達成するための最良の方法は何ですか?

私の唯一の選択肢は、毎分Cronjobを実行することですか? これは共有ホスティングで実用的ですか?

4

1 に答える 1

9

cronjobs を使用するのが最善の方法です。

共有ホスティングで cronjob を使用できない場合 (カスタマー サポートに問い合わせてください)、インターネットに接続されたマシン (つまり、自宅のコンピューター) で cronjob を実行して、サーバー上の php ページへの wget を実行し、認証します。その上で、php コードを実行してメールを送信します。

PHP コードの部分では、送信するすべての電子メール、creation_date フィールド、および status フィールドを含むデータベース テーブルを使用します。

ジョブによって呼び出される PHP コードは、単純に (疑似コードで) 行います。

$batchRecords = takeAbunchOfRecordsWhereStatus(NOT_SENT);
while($batchRecords) {
    if($creationDate + 10 minutes >= now()) {
        sendEmail();
        markRecordAsSent();
    }
}
于 2012-09-15T05:45:51.637 に答える