3

サーバーサイドとしてPHPを使用して、Html5、JavaScript(jQuery)、およびajaxに基づくゲームを開発しています。ゲームには、ジョブの期間ごとにプレーヤーに割り当てることができるさまざまなタイプのジョブがあります。1つのジョブJOB1を1人のプレーヤーに割り当てPLAYER1、他のジョブJOB2を30分の時間で他のプレーヤーPLAYER2に割り当てたとします。意味、

PLAYER1 = JOB1(10MINS)
PLAYER2 = JOB2(30MINS)

ここで、PHPでマルチスレッドを作成して、この2つのジョブを並行して処理し、そのジョブが1分ごとに完了するとクライアント側に要求を取得したいと思います。

PHPでマルチスレッドを作成するにはさまざまな方法があることを知っており、ajaxを使用してジョブを開始するときにスレッドを作成するようにPHPサーバーにリクエストを送信できますが、データをクライアント側に戻して表示するにはどうすればよいですか?毎分後のデータ?

可能かどうか?同じことをする他のオプションは何ですか?

4

2 に答える 2

0

これは、マルチスレッドではなく、マルチプロセッシングのタスクだと思います。

別のPHPスレッドを作成するには、次のようなものを使用しますpcntl_fork

http://php.net/manual/en/function.pcntl-fork.php

ただし、HTTPなどの要求/応答タイプの状況では、別のプロセスを開始してから、クライアントからポーリングする可能性が高くなります。

PHPでこのようなことを行うには、演算子を使用してCLIで別のプロセスを作成し&(Linuxのみ、Windowsが必要な場合は私に知らせて、答えを更新します)、彼は次のいずれかを使用してポーリングします。

  • プロセスがステータス情報を出力するファイル、
  • 上記と同様に、データベース、
  • または共有メモリセグメント:http://php.net/manual/en/book.shmop.php
于 2012-12-06T08:43:46.633 に答える
0

pcntl_fork関数のラッパーである「spork」https://github.com/kriswallsmith/sporkと呼ばれるphpライブラリがあります。

それは私にとってかなりうまく機能し、安定しています。

于 2012-12-06T08:48:30.700 に答える