私は、ビデオのアップロードサイトを開発していると私はジレンマに走っています:ビデオは、訪問者に表示されるために、FLV形式に変換する必要がアップロードされますが、私はスクリプト内のコマンドを実行すると、スクリプトがハングしますFFMPEGがビデオを変換している間、約10〜15分間。バックグラウンド処理の動画アップロード、PHPの熟練した方法は何ですか?
私は、ファイルを処理する必要があることを示すレコードをデータベースに挿入し、5分ごとに設定されたcronジョブを使用して、処理が必要なデータベースからレコードを選択し、処理してからそれらが処理されたことを示すデータベースを更新します。私の心配は、あまりにも多くのプロセスを実行し、サーバーが緊張の下でクラッシュするので、誰にもこれに対する解決策、または私が念頭に置いているプロセスをより良くする方法がありますか?
さて、これは今私は考えているものであり、ユーザがビデオをアップロードし、行がビデオを示すデータベースに挿入され、処理される必要があります。 5分ごとに設定されたcronジョブは、処理する必要があるものと処理されているものを確認します。一度に最大5つのプロセスを作成するので、スクリプトは処理する必要があるビデオと、処理されていれば、それが処理されていることを示すレコードを更新し、ビデオが処理されたら、それが処理されたことを示すレコードを更新し、cronジョブが再び開始される。
私はそれを考えましたが、私は心配していました。 1.同時に多くの人がビデオをアップロードしようとしている場合、効果的な方法がないので、サーバは負荷をかけてクラッシュする可能性があります。生成されたプロセスの量を制御します。 2.ファイルが変換されたら、どのようにユーザーに報告することができますか?私はプロセスIDを取得し、このプロセスが終了した場合、cronジョブのチェックを持っていると仮定し、データベースを更新しますか? – Muggles
負荷がかかっても失敗しますか? – Alfred