国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

如何實(shí)現(xiàn)簡(jiǎn)單的外部命令進(jìn)程管理

augushong

問題描述

我需要長(zhǎng)期運(yùn)行一個(gè)外部的可以執(zhí)行文件,它帶有一個(gè)rpc服務(wù),然后在workerman里做一些定時(shí)器,定時(shí)請(qǐng)求rpc服務(wù)。我的想法是啟動(dòng)兩個(gè)worker,第一個(gè)用來執(zhí)行外部的命令,worker啟動(dòng)時(shí)啟動(dòng),worker退出時(shí)退出,另一個(gè)worker里做邏輯。

為此你搜索到了哪些方案及不適用的原因

在第一個(gè)worker里,好像不適合使用exec等命令,因?yàn)檫@些命令是阻塞的。那么直接簡(jiǎn)單使用exec呢?

我還使用symfony/process區(qū)異步執(zhí)行命令,但是該組件有一個(gè)超時(shí)配置項(xiàng),無法關(guān)閉,不符合我的需求。

還有就是使用popen,但這樣無法很好地管理外部進(jìn)程的狀態(tài)和輸出,且獲取輸出也是同步阻塞的,并非一個(gè)事件。

如果并且如果使用popen的話,有兩個(gè)問題,開發(fā)模式時(shí),在stop回調(diào)中調(diào)動(dòng)pclose關(guān)閉進(jìn)程:

$worker->onWorkerStop = function ($worker) {
    pclose($worker->process);
};

在終端中需要ctrl+c兩次才能完全退出。
而如果進(jìn)入守護(hù)進(jìn)程模式,使用stop命令退出,只能退出worker,不能正確關(guān)閉popen的外部命令!

workerman有沒有內(nèi)置類似的機(jī)制呢?

757 1 0
1個(gè)回答

walkor 打賞

試下 proc_open

  • 暫無評(píng)論
年代過于久遠(yuǎn),無法發(fā)表回答
??