2013-02-27 15 views
6

私はPhantomJS 1.8を使用しており、限界に遭遇しました。ディスクキャッシュに使用するディレクトリを指定することはできません。これを問題追跡システムに追加しましたが、それ以前にはなかったので、すぐに追加する予定はありません。phantomjsのインスタンスごとに異なるキャッシュディレクトリを指定

この制限を回避する方法を探しています。私がやろうとしているのは、複数のPhantomjsプロセスを稼動させ、それぞれ独自の個別のキャッシュディレクトリを持つことです。この機能がファントムに追加されるまでこれを行う方法はありますか?

ファントムはどのようにして最初にキャッシュに使用するディレクトリを決定するのでしょうか?それが環境変数に基づいている場合、私が実行しているPhantomJSの各インスタンスに対してその変数に異なる値を設定する方法があるかもしれません。

+0

これを把握しましたか?とにかく、複数のインスタンスをどのように稼働させましたか?私は別々の子プロセスを使ってみましたが、動作していないようです。 –

+1

残念ながら、PhantomJS 1.8では、キャッシュディレクトリを渡す方法がないため、すべての呼び出しが同じキャッシュを共有している場合は、同じ呼び出しを共有します。これを修正する更新プログラムがあるかどうかはわかりませんが、https://github.com/ariya/phantomjs/issues/11102という機能リクエストを作成しました。私が複数のインスタンスをどのように実行したかについては、この回答からオプション#2を選択しました:http://stackoverflow.com/a/9978162。 – Borys

+0

私はオプションの#1のパスを調べました。評価するページのjavascript関数を渡していて、オプション#1がわかりやすいように見えました。私は独自の子プロセスにnodejsモジュールをラップしました。しかし、2つの子プロセスを同時に呼び出して2つの呼び出しを行うことはできません。 –

答えて

2

少なくともPhantomJS 1.9では、キャッシュディレクトリは$ HOME/.qws/cache/Ofi Labs/PhantomJSです。したがって、PhantomJSを実行する前にHOME環境変数を変更すると、プロセスごとに異なるディスクキャッシュを持つことができます。私はこれをテストし、それは私のために働く。

関連する問題