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

如何動態(tài)的創(chuàng)建進程或php強制restart所有程序呢?

qq7467466

問題描述

如何動態(tài)的創(chuàng)建進程或php強制restart所有程序呢? 搞了一天搞吐了, 用worker_start創(chuàng)建的進程狀態(tài)跑不起來, 通過刪除主進程posix_kill(posix_getppid(), SIGUSR1); 重啟也不行(通過讀DB動態(tài)生成的process 不會重新啟動), 通過自己寫個sh,php里面執(zhí)行shell 重啟整個服務(wù)也不行, 裂開了

1264 3 1
3個回答

efnic

目前我通過這個方法,實現(xiàn)增減進程。
http://www.wtbis.cn/q/11025
用模型事件:

  1. 當增加或者停止進程時,生成./runtime/restart.crontab;
  2. 使用系統(tǒng)本身的crontab,定期執(zhí)行一個重啟webman的php腳本

我的業(yè)務(wù)場景是實時量化交易,每個進程代表一個客戶的賬戶。
通過上述方法,在增加賬戶時重啟webman,達到啟動進程的目的。

  • 暫無評論
efnic

./config/process.php關(guān)鍵代碼:

$okx_process_file = __DIR__ . '/okx_process.php';
if (is_file($okx_process_file)) {
    $okx_process = include $okx_process_file;
    return $config + $okx_process;
} else {
    return $config;
}

利用模型的后置事件,動態(tài)的增減okx_process.php

    /**
     * 生成啟動進程時的配置
     * @return void
     */
    public static function buildStartProcessConfig(): void
    {
        $tpl = <<<EOF
<?php

use process\AsyncOrder;

return [
PROCESS_CONFIG_CONTENT
];

EOF;
        $process = <<<EOF
    'PROCESS_NAME' => [
        'handler' => AsyncOrder::class,
        'constructor' => [
            'config' => 'PROCESS_NAME',
        ],
    ],
EOF;
        $content = '';
        $list = static::where('start_process', '=', 1)->select();
        if ($list->exists()) {
            $list->each(function (self $model, $key) use (&$content, $process) {
                $content .= str_replace('PROCESS_NAME', $model->title, $process) . PHP_EOL;
            });
        }

        $config = str_replace('PROCESS_CONFIG_CONTENT', $content, $tpl);
        if (!file_put_contents(config_path('okx_process.php'), $config)) {
            throw new RuntimeException('寫進程配置失敗');
        }
    }
  • qq7467466 2023-08-24

    感謝大佬的回復(fù), 我這邊已經(jīng)采用了\posix_kill(posix_getppid(), SIGINT); 指令來停止主進程, 然后通過supervisord來重啟進程已實現(xiàn)業(yè)務(wù)模式~

  • lizimu 2024-04-15

    supervisord 只能debug模式吧?daemon會報錯

JackDx

mark一下

  • 暫無評論
年代過于久遠,無法發(fā)表回答
??