[Solved] Javascript console 顯示 runtime.lastError 訊息

在〈[Solved] Javascript console 顯示 runtime.lastError 訊息〉中留言功能已關閉 / 25,931 views

在升級網站主機後,順便幫網站作一些微調,卻發現在 Javascript console 裡老是出現
這個討論的紅字訊息「Unchecked runtime.lastError: The message port closed
before a response was received.」

Unchecked runtime.lastError: The message port closed before a response was received.

作了一些檢查之後發現跟 Google Chrome 瀏覽器的外掛有關,就逐一停用測試。最後
發現問題是 VPN 造成的。

Google Chrome Extension - Free VPN

Free VPN for Chrome - VPN Proxy VeePN
2.1.6
Fast, ultra secure, and easy to use VPN service to protect your privacy online. Enjoy
Unlimited Traffic and Bandwidth!
ID:majdfhpaihoncoakbjgbdhglocklcgno

把它關掉之後就沒有錯誤訊息了!
有遇到相同錯誤的人可以試著從 Google Chrome Extensions 的使用狀況去檢查!

[OS/X Yosemite] 設定 crontab

在〈[OS/X Yosemite] 設定 crontab〉中留言功能已關閉 / 513 views

幾年前買了一台 MAC mini server 1T 版用來裝一些簡單的網站應用,歷經 OS 的升級,到了 Yosemite 之後,發現怎麼 cron job 不會動了。

原來 apple 把這部份的運作改掉了,不過因為自己還有在用 freeBSD,為了讓管理方式是一致的。

在 MAC 上面還是想用 cron 來控制。

More

[FreeBSD] 在超過 2T 以上的硬碟安裝 FreeBSD

在〈[FreeBSD] 在超過 2T 以上的硬碟安裝 FreeBSD〉中留言功能已關閉 / 402 views

好一陣子沒有管理自己的主機,才發現它已經跑了 1003 天~~~所以就著手換一台電腦來轉移系統。

選擇的配備是
intel E3 CPU + 16GB ram + HGST 3T 硬碟 + ASUS B85M-E 主機板

結果到 freebsd.org 下載 ISO image 之後,發現怎麼灌都無法開機,只好開始爬文。

More

[FreeBSD] 一次清除所有程序

No Comments / 4,457 views

ps ax | grep http | awk '{print $1}' | xargs kill

好用的指令組合, 讚!!

用 php + cronjob 實作即時處理的服務

No Comments / 4,134 views

因為 php 擁有許多方便的函示庫,越來越多情況會習慣用它來處理,但是在 FreeBSD 主機上 cronjob 的最短間隔是一分鐘,不能即時回應總是有那麼一點不爽快。

而且透過 cronjob 每分鐘都去執行,如果程式跑很久的話,系統上會有一堆程式,佔掉很多資源。

總結下來,必須讓程式在兼具即時回應和資源有效使用的情況下運作。

作法上,假設我們寫一個 service.php 然後由 cronjob 每分鐘去執行一次。這時,程式裡應該有以下的機制:

  1. 檢查是否有其他執行緒存在,如果有就結束執行,以維持單一程式在執行。(當然也可以允許多個程式一起跑)
  2. 記錄程式的啟動時間 $startup = time() ;
  3. 開始辦正事,但記得盡可能 KISS (Keep it simple and stupid)。如果有一堆事要作,也讓它一件一件作,這樣可以避免佔用太多資源,花太多時間執行。
  4. 執行完畢後,檢查程式是否超過有效期限,例如可以設定程式生命週期為 3 分鐘,在週期內它會一直檢查有沒有工作要作,有就作,沒有就停止。如果超出週期,則不論有沒有工作要作,都會停止,讓下一分鐘的程式接手。這是為了避免程式活太久,產生一些不必要的問題。

$concurrency = 1 ;
$startup = time() ;
$ttl = 180 ; /* seconds, time to life of this process */
$cycle_latency = 500 ; /* micro seconds, usleep between each query */
$off_duty = 3 ; /* seconds, keep working until next process is about to coming in $off_duty seconds. */

Older Entries