1月31日上午8:54分在start_gateway.php中啟動的Timer,兩秒觸發(fā)一次,在第二天(上午0:33)的時候Timer不再觸發(fā)函數(shù)了。
[attach]240[/attach]
請問Gateway是否有崩潰日志,Timer停止是因為系統(tǒng)回收了還是代碼崩潰了或者是Timer是有最大計數(shù)的?
Timer不會自己消失,更不會被系統(tǒng)回收,這種問題絕大多數(shù)是業(yè)務(wù)問題,或者是開發(fā)者判斷失誤。
請仔細檢查自己的業(yè)務(wù)邏輯是否有問題,比如$openids是否可能為空,file_get_contents($callback)有可能一直阻塞不返回導(dǎo)致定時器卡主。如果$value='/tmp/queue/',exec("rm -rf /tmp/queue/") 會刪掉queue目錄的,foreach永遠將不會進入,也就沒有日志。
php start.php status 可以看到各個進程運行情況,包括gateway運行情況。
最后建議在Timer函數(shù)第一行就記錄個日志,看下是否有進入定時邏輯。如果發(fā)現(xiàn)定時器沒有運行,可以利用strace lsof兩個命令排查下進程卡在哪里,比如卡在url請求上