2

最近、大量の電子メールを送信できるPHPアプリケーションの開発を依頼されました。これを行うために、MySQLDatabaseから電子メールアドレスを取得し、それらをループしてそれぞれをパーソナライズしてから送信するPHPスクリプトがあります。

これは完全に正常に機能しますが、このPHPスクリプトの実行中(および実行に数分かかることは明らかです)、ユーザーがアプリケーションで他に何もできないというわずかな問題があります。他の人はそれにアクセスできますが、問題のユーザーは、電子メールの送信中にアプリケーションの他のページをロードできません。

これに対処する方法はありますか、それともこれは私たちが一緒に暮らさなければならないものですか?

4

4 に答える 4

2

この場合のユーザーは、現在PHPページを処理しているページに対してセッションを開いています。このため、ユーザーは同じサイトの別のページを(同じセッションで)開くことができません。

これを処理する方法は、ユーザーがこのプロセスを開始することですが、ユーザーがアクセスしているスクリプトに電子メールを送信させないでください。たとえば、データベースに「todo」リストを作成し、cronjobに処理させることができます。このようにして、ユーザーは引き続き他のページにアクセスできます。

于 2011-10-26T13:59:47.627 に答える
1

長時間実行されるスクリプトにセッションが適用されていないことを確認してください。

于 2011-10-26T13:58:47.237 に答える
1

cronジョブチュートリアルをご覧になりましたか

于 2011-10-26T13:59:22.663 に答える
1

基本的に、phpスクリプトが実行されてから、ページがクライアントに送信されます。したがって、スクリプトの実行中に訪問者がページにとどまるのは正常です。

そのようなタスクのcronjobを見てください。

于 2011-10-26T14:00:29.933 に答える