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

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

Related 関連記事

  1. 1

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

  2. 2

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

  3. 3

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

  4. 4

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

  5. 5

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

  6. 6

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

  7. 7

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

  8. 8

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

  9. 9

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

  10. 10

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

  11. 11

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

  12. 12

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

  13. 13

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

  14. 14

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

  15. 15

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

  16. 16

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

  17. 17

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

  18. 18

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

  19. 19

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

  20. 20

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

  21. 21

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

  22. 22

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

  23. 23

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

  24. 24

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

  25. 25

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

  26. 26

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

  27. 27

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

  28. 28

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

  29. 29

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

ホットタグ

アーカイブ