2つのC#アプリケーションが関係するphpサービスを実装したい場合、各アプリケーションは以前のアプリケーションの出力を読み込み、別の出力を生成します。スレッドやその他の非同期メカニズムを必要とするのではなく、これを行単位で実装できるかどうかは疑問です。PHPで関数呼び出しの順序を保証するには?
ユーザーは次のように現在書かれ、uploadFile.php
につながる、this webpageでテキストファイルをアップロードすることができます
<?php
copy($_FILES["file"]["tmp_name"], "uploads/" . $_FILES["file"]["name"]);
$n1 = "uploads/" . $_FILES["file"]["name"];
echo "Uploaded: " . $n1 . "<br>";
exec("mono c1.exe $n1");
echo "After running c1.exe";
$n2 ="uploads/c1_" . $_FILES["file"]["name"];
exec("mono c2.exe $n2");
echo "After running c2.exe";
?>
そして、c1.exe
はtest.txt
の内容を使用し、c1_test.txt
を生成し、ユーザーのアップロードにWebページでtest.txt
を想定c2.exe
はc1_test.txt
の内容を使用し、c2_test.txt
を生成します。
私のテスト(1人のユーザーのみ)は、現在のuploadFile.php
がこのタスクを段階的に実行できることを示しています。
しかし、多くのユーザーが起動できるWebサービスに適しているかどうかはわかりません。
助けてもらえますか?
編集1:実行の順序が尊重される場合、別の懸念事項は、以前のユーザーのすべてのタスクが完了するまでユーザーが待機する必要があるかどうかです。 c1.exe
またはc2.exe
が実行に数分かかる場合は、フィードバックなしでこの待機が厄介です。
現在のアプローチでは、複数のユーザーが同時にタスクを実行できます(ユーザーごとに順調に実行できます)。それ以外の場合は、自分でマルチスレッドを実装する必要がありますか?
を私は上記のアプローチで何の問題を見ません。 – nogad
'c1.exe'を実行するのに5分かかるとしましょう。別のユーザーがユーザーの直後にファイルをアップロードするとどうなりますか?そこには「キュー」がありますか? – SoftTimur
出力がリダイレクトされない限り、execはブロックしています – nogad