質問

PHPは、Ampersand in Bash(Forking)のようなものをサポートしていますか? 2つのWebページでCurlを同時に使用したかったので、スクリプトはFirst Curl Command Finnisesの前に待つ必要がないとしましょう。どのようにPHPでそれを達成できますか?バッシュでこのようなもの:

 curl www.google.com &
 curl www.yahoo.com &
 wait
役に立ちましたか?

解決

PHPは、Ampersand in Bash(Forking)のようなものをサポートしていますか?
いいえ。 PCNTL拡張機能はUNIXのみであることを指摘していますが、他の回答をご覧ください。

...どのようにしてPHPでそれを達成できますか?*
Curlは、複数のダウンロードを同時に実行することをサポートします.

他のヒント

使用できます popen また proc_open プロセスを開いてバックグラウンドで実行することを行いますが、あるようなバックグラウンド操作の言語サポートはありません bash (とにかくタスクを実行するように作られました; PHPはスクリプトのために作られました)。

Proc_openを使用して、使用できます proc_get_status プロセスがいつ終了するかを知るため。ノーがあるのではないかと心配しています wait 同等。

あなたが本当に望むなら、あなたは非同期の方法を書くことができますが、それは多くの仕事であり、おそらくあなたがPHPを使用しているならひどいデザインのアイデアです。

多くの場合、ある種のキューイングメカニズムが望ましいです。 Gearmanは、使用できるオープンソースキューイングメカニズムです。また、Zend Serverのジョブキューに関するブログ投稿があります。これは、タスクの実行を非同期に実行することについて説明しています キューしますか? Zend Serverのジョブキューの紹介.

また、Zend Frameworkキューイングクラスのようなものを使用して、非同期作業の一部を実装することもできます。 Zend_Queue

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top