4

マスメーラープロジェクトをやっています。すべてが順調に進んでいますが、問題は私がフォームを持っていることです。送信後、データベースから大量の電子メールIDを取得しています(約3000通の電子メール)。電子メールごとに(sleep()メソッドを使用して)3秒の間隔を設定しました。約9000秒かかります。ユーザーは、そのphpスクリプトの実行が完了するまで、同じページで立ち往生することを望んでいません。

未亡人のプラットフォームでサインアウトした後でも、バックグラウンドでphpスクリプトを実行するにはどうすればよいですか?ユーザーが再度ログインすると、1つのプログレスバーが表示されます。cronジョブを使用せずに可能性はありますか?

解決策が必要です。誰かがこの問題について私を助けてくれますか?

4

3 に答える 3

4

バックグラウンドでプロセスを実行するには、like(-r、-o、-p) で使用する多くのオプションがある 'wge't コマンドを使用できます。

あなたの問題のために、特定のモジュール/ URLをバックグラウンドで実行して、一度起動するとバックグラウンドで動作し続ける必要があるため、以下のコマンドを実行できます。

wget -o ログファイル linux.about.com &

wget の詳細については、以下のリンクを参照してください。

http://linux.about.com/od/commands/a/Example-Uses-Of-The-Command-Wget.htm

于 2013-05-30T10:16:15.563 に答える
1

リクエストを保持するキューを維持する必要があります。そのキューは、バックグラウンドで実行されている Cron ジョブで使用する必要があります。リクエストには、cron が完了したかどうか、または完了したパーセンテージをユーザーに知らせるフラグが必要です。

メーラーは Web から実行しないでください。cron ジョブにします。

于 2012-06-04T07:08:02.893 に答える
0

「CRON JOB」で可能です。cPanel を使用している場合は、簡単に見つけることができます。その他のホスティング コントロール パネルでは、「時間指定スケジュール」と呼ばれます。「cronジョブのセットアップ方法」をグーグルで検索できます。

于 2012-06-04T18:24:13.210 に答える