2013-02-27 95 views
6

我正在使用PhantomJS 1.8並遇到了限制 - 您無法指定它用於磁盤緩存的目錄。我將它添加到他們的問題跟蹤系統中,但由於它之前沒有,我不希望它很快就會添加。爲phantomjs的每個實例指定不同的緩存目錄

所以,我正在尋找一些解決這個限制的方法。我想要做的就是運行多個Phantomjs進程,每個進程都有自己獨立的緩存目錄。有什麼方法可以做到這一點,直到功能被添加到幻像?

幻像甚至可以確定哪個目錄首先用於緩存?如果它基於一個環境變量,那麼對於我運行的每個PhantomJS實例,可能有一些方法可以爲該變量設置一個不同的值。

+0

你知道了嗎?無論如何,你是如何得到多個實例的?我試着爲每個過程使用一個單獨的子進程,但似乎沒有工作。 – 2013-04-21 05:00:56

+1

不幸的是,從PhantomJS 1.8開始,無法傳入緩存目錄,因此如果您使用的是一個緩存目錄,則所有調用都共享相同的緩存。我不確定是否有更新來解決這個問題,但我爲它創建了一個功能請求:https://github.com/ariya/phantomjs/issues/11102。至於我如何運行多個實例,我從這個答案中選擇了選項#2:http://stackoverflow.com/a/9978162。 – Borys 2013-04-22 12:45:15

+0

啊,我沿着選項#1的路徑走了,因爲我傳遞了一個javascript函數供頁面評估,選項#1對我來說似乎更容易。我將nodejs模塊包裝在它自己的子進程中。但是,我似乎無法同時進行兩個子進程的調用。 – 2013-04-22 14:12:29

回答

2

至少在PhantomJS 1.9下,緩存目錄是$ HOME/.qws/cache/Ofi Labs/PhantomJS,因此如果在運行PhantomJS之前修改HOME環境變量,則可以爲每個進程使用不同的磁盤緩存。我測試了這個,它適用於我。

相關問題