昨天修改 x90x.net PHP 主機的 GAE cron job, 把 fetch_twse_daily_close 的執行時間由固定時點改為週期性 (每 61 分鐘), 今早把兩個主機的 LOG 撈出來比對, 發現昨天的結論是對的, PHP 免費主機的 uptime 不保證 99.99%, 如果是固定時點去 trigger, 失敗的機率是蠻高的; 人海戰術有效, 失誤率較低, 也就是說仍然可觀察到失敗的情況.
下面是 GAE 主機 twstockbot 在過去 13 個小時中的日誌 :
2013-07-12 08:40:11.807 /fetch_twse_daily_close 200 1747ms 0kb
2013-07-12 07:39:10.003 /fetch_twse_daily_close 200 3368ms 0kb
2013-07-12 06:38:06.520 /fetch_twse_daily_close 200 3519ms 0kb
2013-07-12 05:37:02.963 /fetch_twse_daily_close 200 617ms 0kb
2013-07-12 04:36:02.271 /fetch_twse_daily_close 200 3465ms 0kb
2013-07-12 03:34:58.725 /fetch_twse_daily_close 200 4060ms 0kb
2013-07-12 02:33:54.563 /fetch_twse_daily_close 200 3443ms 0kb
2013-07-12 01:32:51.055 /fetch_twse_daily_close 200 3815ms 0kb
2013-07-12 00:31:47.134 /fetch_twse_daily_close 200 1777ms 0kb
2013-07-11 23:30:45.305 /fetch_twse_daily_close 200 10405ms 0kb
2013-07-11 22:29:34.896 /fetch_twse_daily_close 200 14362ms 0kb
2013-07-11 21:28:20.443 /fetch_twse_daily_close 200 14276ms 0kb
2013-07-11 20:27:06.117 /fetch_twse_daily_close 200 9814ms 0kb
底下則是 x90x.net PHP 主機的執行日誌, 與上面比較, 可知在過去 13 個小時中失敗三次, 失誤率 23%, 這也驗證了昨天推測此主機的 uptime 大約 80% 左右 :
2013-07-12 08:40:11 fetch_twse_daily_close.php download 1 非交易日
2013-07-12 07:39:09 fetch_twse_daily_close.php download 3 非交易日
2013-07-12 06:38:06 fetch_twse_daily_close.php download 3 非交易日
2013-07-12 04:36:02 fetch_twse_daily_close.php download 4 非交易日
2013-07-12 03:34:58 fetch_twse_daily_close.php download 4 非交易日
2013-07-12 02:33:54 fetch_twse_daily_close.php download 3 非交易日
2013-07-12 01:32:50 fetch_twse_daily_close.php download 3 非交易日
2013-07-12 00:31:47 fetch_twse_daily_close.php download 2 非交易日
2013-07-11 23:30:45 fetch_twse_daily_close.php download 10 OK
2013-07-11 20:27:06 fetch_twse_daily_close.php download 10 OK
從回應時間可知, 時間太長 (似乎超過 10000 ms) 或太短 (似乎小於 1000 ms) 大概會有問題.
雖然沒有對 Appfog 主機進行相同的測試, 但昨日的兩個單一時點 trigger 都有順利執行, 感覺較穩, 我推測這可能是它跟 GAE 一樣以資源使用量來約制免費與收費的關係, 所以品質與收費可能一樣, 要再觀察一陣看看.
沒有留言 :
張貼留言