2

マイページで、完了するまでに比較的時間がかかるスクリプトが実行されます。ユーザーが情報を送信し、すぐに「完了」をエコーし​​て、スクリプトの実行中にユーザーがページを終了できるようにしたいと思います。これどうやってするの?

4

3 に答える 3

2

cronを使用します。ページでメールタスクを作成し、dbまたはfsに保存します-関係ありません。電子メールタスクを取得して実行するn分ごとに実行されるスクリプトを作成します。

残念ながら、ホスティングはcronをサポートしていない可能性があります...

于 2012-10-15T23:33:10.677 に答える
2

メールは当然遅いです。メールにはジョブ キューを使用することをお勧めします。あなたは見るべきです

これらのソリューションを使用すると、遅いタスクをキューに入れ、引き続き有効な情報と進行状況をユーザーに表示できます。

サンプル クライアント

$client= new GearmanClient();
$client->addServer();
$client->do("email", json_encode(array("A@yahoo.com","Hello World","This is your first Mail")));
echo "Welcome To XYZ" ;

サーバ

$worker = new GearmanWorker();
$worker->addServer();
$worker->addFunction("email", "sendMail");
while ( $worker->work() );

function sendMail($mail) {
    list($to, $subject, $message) = json_decode($mail);
    return mail($to, $subject, $message);
}
于 2012-10-15T23:37:42.383 に答える
1

私の提案は、すべての情報をテーブル行または同様のデータ構造に送信し、数分ごとにcronジョブを実行して各行を調べ、送信された情報に基づいてスクリプトを実行することです。

これは少し複雑になりますが、恐れ入りますが、すぐにユーザーを解放します(生の情報がDBに保存されると)

于 2012-10-15T23:33:23.450 に答える