0

私はphpファイルを持っています、例えばhttp://domain.com/user?id=uniquetoken、ユーザーがユニークなトークンでそのURLにアクセスすると、javascriptとphpを使用して多くのことを行い、特定のタスクを完了するのに少なくとも2分かかります。ユーザーが辛抱強くなく、そのタスクのウィンドウを閉じる場合はまったく実行されません。必要なのは、ユーザーがアクセスしたときだけhttp://domain.com/user?id=tokenです。タスクはバックグラウンドで実行する必要があります。したがって、ユーザーがウィンドウを閉じても、バックエンドのphpによってタスクを完了する必要があります。

file_get_contentsのようなアイデアがありますが、それでタスクは完全に完了しますか?アイデアや提案はありますか?

編集:誰かがfile_get_contents(http://domain.com/user?id=token)、別のphpファイルが機能するかどうか教えてくれますか?彼らがすぐにそれを閉じた後でも?? 有効にしました ignore_user_abort().

4

2 に答える 2

0

ユーザーがアクセスしたら、実行するphpスクリプトでをhttp://domain.com/user?id=token呼び出すだけです。exec()

プログラムがこの関数で開始された場合、プログラムがバックグラウンドで実行を継続するには、プログラムの出力をファイルまたは別の出力ストリームにリダイレクトする必要があります。出力リダイレクトを開始するとexec()、ユーザーがブラウザを閉じてもサーバーで実行され続けます。

于 2012-10-11T18:14:31.573 に答える
0

これらすべてのURLをファイルまたはデータベースのどこかに保存し、cronを使用してこれらすべてのリンクを実行できます。ユーザーがページを終了せずにタスクが完了した場合は、ストレージからリンクを削除します。

于 2012-10-11T18:13:17.887 に答える