我在thinkphp 5
中整合了Workerman
后,使用Crontab
作為定時(shí)任務(wù),根據(jù)官方提供的文檔,已經(jīng)整合成功,具體環(huán)境及軟件版本如下:
整合完成后,使用 php crm_server.php start -d
可以正常啟動(dòng)守護(hù)進(jìn)程,且以下代碼執(zhí)行成功:
但是此時(shí)想要停止Workerman
中的Crontab
定時(shí)任務(wù),使用php crm_server.php stop
卻無法停止,報(bào)錯(cuò)信息如下:
此時(shí)在以上代碼的Kernel
控制器中新增stop()
方法:
然后再次執(zhí)行php crm_server.php stop
,報(bào)錯(cuò)信息已經(jīng)消失,但是任務(wù)依然沒有終止:
日志文件中依然會(huì)有輸出:
按照添加stop()
的方法,添加reload()
、restart()
、status()
方法然后調(diào)用Workerman
中的對(duì)應(yīng)方法,依然無效果,請(qǐng)問各位大佬,此時(shí)我應(yīng)該如何實(shí)現(xiàn)php crm_server.php
+ stop
、reload
、restart
、status
的功能?
看起來是tp截獲了命令,導(dǎo)致workemran無法收到命令。
不知道你為什么把tp和workemran整合在一起,如果你想在workerman中用tp的數(shù)據(jù)庫類,沒必要把tp和workerman在代碼層面整合在一起,只需要在純凈的workerman項(xiàng)目中利用composer require topthink/think-orm
將tp的數(shù)據(jù)庫組件加進(jìn)來即可。tp-orm手冊(cè) https://www.kancloud.cn/manual/think-orm/1257998
現(xiàn)在不確定是不是tp截獲了命令,我按照您在另外一個(gè)帖子里提供的方法,在代碼中執(zhí)行 posix_kill(posix_getppid(), SIGINT);
命令依然無法停止。我先試一下您說的workerman整合tp-orm的方法,看看修改成本大不大。非常感謝。