1、在自己swiftadmin框架開發(fā)插件的過程中,發(fā)現(xiàn)調(diào)試模式下大量的文件讀寫在Monitor監(jiān)聽的文件路徑中,
一直重啟會(huì)導(dǎo)致一些異常的發(fā)生,比如我開始判斷插件是否安裝,由于安裝時(shí)間過長(zhǎng)或文件或多,導(dǎo)致重啟的進(jìn)程重復(fù)執(zhí)行了接口的代碼。
2、現(xiàn)在默認(rèn)的入口文件,分為L(zhǎng)inux和Windows,組合為一個(gè)文件不是更好?【現(xiàn)在的入口代碼多少顯得有點(diǎn)凌亂】
3、在process/Monitor類和Windows.php文件中重復(fù)調(diào)用checkAllFilesChange方法;
暫時(shí)解決方法文件直接在checkAllFilesChange函數(shù)中判斷是否存在鎖文件
/**
* @return bool
*/
public function checkAllFilesChange()
{
$plugin_lock = __DIR__ . '/../plugin/plugin.lock';
if (is_file($plugin_lock)) {
return false;
}
foreach ($this->_paths as $path) {
if ($this->checkFilesChange($path)) {
return true;
}
}
return false;
}
期待官方會(huì)有更好的方式來(lái)迭代這塊的代碼,年后公司有幾個(gè)外包直接上webman,
祝webman越來(lái)越好~
更新下 https://github.com/walkor/webman/blob/master/process/Monitor.php 文件,增加了Monitor::pause() 和 Monitor::resume() 方法,用來(lái)暫停和恢復(fù)Monitor監(jiān)控,如果沒問題的話下個(gè)版本發(fā)布。
linux不支持pcntl相關(guān)接口,無(wú)法直接使用同一個(gè)入口文件,所以統(tǒng)一linux windows入口文件的問題還需要從長(zhǎng)計(jì)議。