ユーザーがファイルをアップロードし、ソフトウェアがそのファイルを暗号化するプロセスを開始するPHPプロジェクトがあります。ユーザーが新しいファイルをアップロードした直後にプロセスを開始するにはどうすればよいですか?
このプロセスでは、暗号化に約5-7分かかります。
しかし、暗号化プロセスが進行中の場合、別のユーザーとの間でファイルをアップロードします。その後、プロセスが停止し、プロセスが再び開始されます。
これを解決するために、新しいファイルのファイルパスがFIFO形式で保存されていても、新しいファイルが追加されるとプロセスが再び開始されるプロセステーブルを作成しました。
プロセスが停止せず、ファイルがターンを待つべきであることをどうしたらよいですか?
$sql="SELECT * FROM tbl_process";
$result = mysqli_query($con,$sql);
$countforh = mysqli_num_rows($result);
for($h = 1; $h<=$countforh; $h++)
{
$sql="SELECT * FROM tbl_process WHERE (sr_no = '".$h."' AND com_status = '0')";
//Con_status = 0 is for the file which is not encrypted.
$result = mysqli_query($con,$sql);
$row = mysqli_fetch_array($result);
if (is_null($row['pfile_path']))
{
continue; //if Con_status = 1
}
$sql="SELECT * FROM tbl_process WHERE (sr_no = '".$h."' AND com_status = '0')";
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_array($result))
{
$_SESSION['filepath'] = $row['pfile_path'];
$_SESSION['upload_tbl_sr'] = $row['upload_sr_no'];
}
ここで暗号化プロセスを開始します。
このような目的のために、メッセージキューまたはワーカーサービスがたくさんあります。これをチェックしてください:http://gearman.org/ – num8er