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

webman process進(jìn)程 定時(shí)任務(wù) 卡死 不執(zhí)行

aringuo

問(wèn)題描述

webman中process下配置的所有任務(wù)都不執(zhí)行了

程序代碼

/**
 * 主任務(wù)分發(fā)定時(shí)任務(wù)
 * Class TaskDistribute
 * @package process
 */
class TaskDistribute
{
    public function onWorkerStart()
    {
        //定時(shí)任務(wù),每個(gè)60秒判斷一次
        Timer::add(10, function () {
//            echo 'timer is start', PHP_EOL;
            //主邏輯
            $this->main();
        });
        echo 'distribute timer is end', PHP_EOL;
    }

    /**
     * 任務(wù)分配主邏輯
     */
    public function main()
    {
        //獲取所有狀態(tài)為未分配的任務(wù)(隊(duì)列任務(wù)),然后進(jìn)行循環(huán)
        $where = [
            ['ExecStatus', '=', 1],//執(zhí)行中
            ['DistributeStatus', '=', 0]//分發(fā)狀態(tài)為0未分發(fā)
        ];
        $taskInfo = Task::where($where)
            ->with([
                'template'
            ])
            ->whereHas('template', function ($query) {
                $query->where('ExecType', '=', 1);
            })
            ->get();
        $taskModel = new Task();
        foreach ($taskInfo as $key => $item) {
            Log::channel('TaskDistribute')->debug('task distribute item info is', $item->toArray());
            $taskModel->distribute($item);
        }
    }
}

報(bào)錯(cuò)信息

定時(shí)任務(wù)卡死,不執(zhí)行,必須reload之后才可以,所有定時(shí)任務(wù)都不執(zhí)行了
workerman.log沒(méi)有報(bào)錯(cuò)信息

截圖報(bào)錯(cuò)信息里報(bào)錯(cuò)文件相關(guān)代碼

以下是process配置文件
截圖
以下是stdout日志
截圖

以下為strace -ttp的返回結(jié)果
截圖

再執(zhí)行php start.php status如下
截圖
截圖

執(zhí)行php start.php status的同時(shí),strace -ttp有輸出信息,如下
截圖

執(zhí)行kill -SIGALRM 404970之后,strace界面如下
截圖

lsof -nPp 404970輸出如下
截圖
截圖

2020 1 1
1個(gè)回答

walkor 打賞

怎么判斷不執(zhí)行了?

  • aringuo 2023-02-14

    我在任務(wù)執(zhí)行邏輯里,有輸出日志到log文件,然后我在tail -f 日志的時(shí)候,發(fā)現(xiàn)都沒(méi)有更新任何信息

  • aringuo 2023-02-14

    這種情況很少見(jiàn),我可能有2~3天會(huì)遇到一次,只要reload之后,就正常了,一點(diǎn)問(wèn)題都沒(méi)有了

  • walkor 2023-02-14

    onWorkerStart里定時(shí)器把輸出打開(kāi),這樣能判斷出是定時(shí)器沒(méi)執(zhí)行還是業(yè)務(wù)日志沒(méi)記錄到。

    echo 'timer is start', PHP_EOL;

    有問(wèn)題的時(shí)候執(zhí)行php start.php status ,找到task_distribute進(jìn)程pid,執(zhí)行命令strace -ttp 進(jìn)程pid 能看到進(jìn)程系統(tǒng)調(diào)用情況,大概能判斷出哪里有問(wèn)題,如果不會(huì)看到時(shí)候可以發(fā)出來(lái)。

    另外你的rabbitmq_receive 進(jìn)程有報(bào)錯(cuò),退出了69次,看下錯(cuò)誤日志。

  • aringuo 2023-02-14

    strace -ttp的返回結(jié)果已經(jīng)貼上去了,會(huì)不會(huì)跟我的操作有關(guān)系?我之前進(jìn)行的測(cè)試,需要調(diào)整linux服務(wù)器時(shí)間,我把時(shí)間調(diào)到了3天之前

  • walkor 2023-02-14

    php start.php status 截圖下。

    保持strace不動(dòng),再開(kāi)一個(gè)終端,執(zhí)行kill -SIGALRM 404970,strace界面輸出貼下。
    然后執(zhí)行lsof -nPp 404970 輸出貼下。

  • aringuo 2023-02-14

    好的,已經(jīng)將圖片貼上去了

  • walkor 2023-02-14

    調(diào)整系統(tǒng)時(shí)間會(huì)影響到定時(shí)器

  • aringuo 2023-02-14

    好的好的,謝謝作者大大,我也感覺(jué)是我中間調(diào)試的時(shí)候,調(diào)整linux時(shí)間導(dǎo)致的

年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??