PHPでバックグラウンドプロセスを作成する方法

困惑した少年

PHPでバックグラウンドプロセスを作成したい

私はこれらすべてをクライアント側のAJAX呼び出しとサーバー側のPHPで試しています。

実際、私はたくさんのURLを廃棄しています。これを行うために、テキスト領域にすべてのスクラップURLをリストし、POSTメソッドを使用してフォームを送信しています。フォームアクションはPOSTデータをキャッチし、バックグラウンドスクリプトに渡します。たくさんのURLを渡すことができるので、1000になる可能性があります。これは、スクリプトをオンデマンドでバックグラウンドで実行し、完了するとファイルまたはデータベースに出力を返すためです。(プロセスIDをファイルまたはデータベースに書き込みます。実行できます)

15分後に実行されるこのためのバックエンドcronジョブを設定したくありません。

私たちが一般的に解析するために使用したPHPコードに伴う問題は、スクリプトの実行が完了するまで、ブラウザーを閉じたり、ページを変更したりできないことです。しかし、ページを変更したいのですが、ブラウザも使用できますが、スクリプトはバックグラウンドで実行する必要があります。

私の理解はこの場合です:

  1. ページにフォームがあり、フォームの送信時に、バックグラウンドで実行されるPHPスクリプトを呼び出します。
  2. バックグラウンドプロセスが開始され、実行されています....実行中....実行中.....実行中.....。
  3. プロセスIDバックグラウンドプロセスが開始され、前のバックグラウンドプロセスが実行されていたプロセスIDを取得したい....実行中....実行中.....実行中.........。

私が正しければ、他の言語のチャンネルと同じように動作しています。

私はPHPコードで解決します:私はこの以下のスクリプトが私が望むように機能すると思いますか、それとも別の方法を見つける必要がありますか?

 $cmd = "php test.php > testoutput.php 2>&1 & echo $!";
 exec($cmd, $pid);
 echo "Script Running with ".$pid;
 exit;

ここに画像の説明を入力してください

NevioVesić

あなたはそのようにそれをするべきではありません。あなたがやろうとしているコードは信頼性が低く、維持するのが難しく、遅く、あなたがそれをどのようにすべきかではありません。はい、Chetanがすでに述べたように、このphpのようなことはバックグラウンドプロセスを実行することができますただし、これは適切なアプローチではありません。

私があなたに提案するのはこれです:

a。)URL、ID、ステータスなどのジョブの説明を含むデータベーステーブルを作成して、後でそれに基づいてフィルタリングできるようにします。

b。)監視対象または使い慣れたその他のサービス管理によって実行されるプログラムを脇に置きます。このようにして、追加のワーカーが空いたときにデータベースから次に利用可能なジョブをプルするスクリプトを作成できます。

c。)その新しいテーブルのプライマリIDを「ジョブID」として使用します。たとえば、WebSocketを使用して、顧客にジョブのステータスを表示することができます。

理想的には、これにはデータベースを使用しませんが、実際には、rabbitmqやその他のキューイングシステム、さらにはredisなどのものを使用します。

お役に立てれば!

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

春のwebappでバックグラウンドプロセスを作成する方法?

分類Dev

Pythonでバックグラウンドプロセスを開始する方法

分類Dev

symfonyでバックグラウンドプロセスを実行する方法

分類Dev

systemdモニターのバックグラウンドプロセスを作成する方法

分類Dev

Pythonを使用してバックグラウンドで実行されるプロセスを作成します

分類Dev

PHPを使用してバックグラウンドプロセスでCSVファイルをアップロードする方法(Laravel 5.8)

分類Dev

Linuxでバックグラウンドでプロセスを実行する

分類Dev

PowerShellでバックグラウンドプロセスとしてMavenコマンドを実行する方法

分類Dev

フォアグラウンドプロセスの実行中にバックグラウンドで別のプロセスを生成する方法

分類Dev

バックグラウンドでサブプロセスを実行する

分類Dev

Pythonでバックグラウンドプロセスを実行する

分類Dev

arduinoでバックグラウンドプロセスを実行する

分類Dev

Linuxプロセスをバックグラウンドで開始する

分類Dev

バックグラウンド python で GPIO プロセスを実行する

分類Dev

プロセスをバックグラウンドにドロップする

分類Dev

Windows上のPHPでバックグラウンドプロセスを実行してpidを取得する

分類Dev

SpringMVCフレームワークでバックグラウンドプロセスを実行する方法

分類Dev

CancellationPendingイベントで終了するようにバックグラウンドワーカー内のプロセスを作成する方法

分類Dev

freebsdでバックグラウンドプロセスのリストを取得する方法

分類Dev

gcloudsshを使用してバックグラウンドでプロセスを実行する方法

分類Dev

PHPでバックグラウンドプロセスを永続的に実行する

分類Dev

バックグラウンドプロセスとしてスクリプトを作成するには

分類Dev

バックグラウンドプロセスのプロセスIDを取得する方法

分類Dev

Java EEでバックグラウンドプロセスを開始する方法

分類Dev

JXAで非同期バックグラウンドプロセスを起動する方法

分類Dev

IBMWorklight-バックグラウンドプロセスでWorklightを使用する方法

分類Dev

Androidでバックグラウンドプロセスを繰り返し実行する方法

分類Dev

SSHで最後のバックグラウンドプロセスのpidを取得する方法

分類Dev

sshpassプロセスをバックグラウンドで維持する方法は?

Related 関連記事

  1. 1

    春のwebappでバックグラウンドプロセスを作成する方法?

  2. 2

    Pythonでバックグラウンドプロセスを開始する方法

  3. 3

    symfonyでバックグラウンドプロセスを実行する方法

  4. 4

    systemdモニターのバックグラウンドプロセスを作成する方法

  5. 5

    Pythonを使用してバックグラウンドで実行されるプロセスを作成します

  6. 6

    PHPを使用してバックグラウンドプロセスでCSVファイルをアップロードする方法(Laravel 5.8)

  7. 7

    Linuxでバックグラウンドでプロセスを実行する

  8. 8

    PowerShellでバックグラウンドプロセスとしてMavenコマンドを実行する方法

  9. 9

    フォアグラウンドプロセスの実行中にバックグラウンドで別のプロセスを生成する方法

  10. 10

    バックグラウンドでサブプロセスを実行する

  11. 11

    Pythonでバックグラウンドプロセスを実行する

  12. 12

    arduinoでバックグラウンドプロセスを実行する

  13. 13

    Linuxプロセスをバックグラウンドで開始する

  14. 14

    バックグラウンド python で GPIO プロセスを実行する

  15. 15

    プロセスをバックグラウンドにドロップする

  16. 16

    Windows上のPHPでバックグラウンドプロセスを実行してpidを取得する

  17. 17

    SpringMVCフレームワークでバックグラウンドプロセスを実行する方法

  18. 18

    CancellationPendingイベントで終了するようにバックグラウンドワーカー内のプロセスを作成する方法

  19. 19

    freebsdでバックグラウンドプロセスのリストを取得する方法

  20. 20

    gcloudsshを使用してバックグラウンドでプロセスを実行する方法

  21. 21

    PHPでバックグラウンドプロセスを永続的に実行する

  22. 22

    バックグラウンドプロセスとしてスクリプトを作成するには

  23. 23

    バックグラウンドプロセスのプロセスIDを取得する方法

  24. 24

    Java EEでバックグラウンドプロセスを開始する方法

  25. 25

    JXAで非同期バックグラウンドプロセスを起動する方法

  26. 26

    IBMWorklight-バックグラウンドプロセスでWorklightを使用する方法

  27. 27

    Androidでバックグラウンドプロセスを繰り返し実行する方法

  28. 28

    SSHで最後のバックグラウンドプロセスのpidを取得する方法

  29. 29

    sshpassプロセスをバックグラウンドで維持する方法は?

ホットタグ

アーカイブ