HHVM 中執行 composer 或 curl 出現 SlowTimer 的解決方法

Written by Simon Asika on

當我們在 HHVM 的環境下執行curl操作時(例如 composer),很容易出現這樣的錯誤訊息:

SlowTimer [5001ms] at curl: https://packagist.org/p/provider-active$2f0252314dbbe5cb68caf8e0fa2209a2a654aab9628231c6ba4d72b06f66e9d5.json

這是因為HHVM預設的curl最低連線時間較短造成的。我們需要在執行 composer 時增加兩個設定:

ResourceLimit.SocketDefaultTimeout=30 # in seconds  
Http.SlowQueryThreshold=30000 # in milliseconds (took me half an hour to figure this one out)

例如這樣執行 composer update

hhvm -v ResourceLimit.SocketDefaultTimeout=30 -v Http.SlowQueryThreshold=30000 /usr/local/bin/composer update

就可以正常運作了。我們可以用這個方法加上 composer 的 alias:

alias composer="hhvm -v ResourceLimit.SocketDefaultTimeout=30 -v Http.SlowQueryThreshold=30000 /usr/local/bin/composer"

這樣未來就不用輸入這麼長的字串囉。

參考來源: Speed up Composer by using HHVM, including a SlowTimer error fix

Control Tools

WS-logo