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

自定義進(jìn)程是否可以用Worker::stopAll()關(guān)閉進(jìn)程?

workers
//記錄執(zhí)行時(shí)間
$start = microtime(true);
$data = jsonDecode($data, true);
$result = ['status' => 'error', 'info' => '圖片上傳失敗,請重試!'];
if (isset($data['mediaId']) && !empty($data['mediaId'])) {
    //創(chuàng)建一個(gè)定時(shí)器,如果超過10秒還沒有上傳成功,則返回錯(cuò)誤信息
    $timerId = Timer::add(self::QINIU_TIMEOUT, function () use ($connection) {
        $connection->send(json_encode(['status' => 'error', 'info' => '圖片上傳失敗,請重試!'], JSON_UNESCAPED_UNICODE));
        //關(guān)閉當(dāng)前鏈接
        $connection->close();
        //關(guān)閉當(dāng)前進(jìn)程
        Worker::stopAll();
    }, [], false);
    //記錄上傳七牛時(shí)間
    $start2 = microtime(true);
    $qiniu = new Qiniu();
    $res = $qiniu->uploadMedia($data['mediaId'], $data['path'], $data['fileType']);
    if ($res['status'] == 'success') {
        $result = ['status' => 'success', 'info' => $res['info']];
    } else {
        $result = ['status' => 'error', 'info' => '圖片上傳失敗,請重試!'];
    }
    $end2 = microtime(true);
    //如果上傳成功,則刪除定時(shí)器
    if ($result['status'] == 'success') {
        Timer::del($timerId);
    }
}
$connection->send(json_encode($result, JSON_UNESCAPED_UNICODE));
$end = microtime(true);
$time = $end - $start;
if ($time >= self::QINIU_TIMEOUT) {
    //推送通知
}

上述代碼是開啟了自定義進(jìn)程,用來將圖片上傳到七牛云。七牛云的上傳接口沒有超時(shí)設(shè)置。
由于有些圖片上傳時(shí)間過長,所以設(shè)置了一個(gè)QINIU_TIMEOUT超時(shí)時(shí)間,當(dāng)超過這個(gè)時(shí)間后就使用Worker::stopAll()結(jié)束這個(gè)進(jìn)程以終止此次上傳操作。按理說這樣設(shè)計(jì)的話單次上傳時(shí)間不會(huì)超過QINIU_TIMEOUT了,但是實(shí)際上仍然有很多超時(shí),好像進(jìn)程并沒有被結(jié)束,并且推送通知處的代碼也仍然會(huì)執(zhí)行(進(jìn)程結(jié)束后,后續(xù)代碼不是應(yīng)該不執(zhí)行了嗎?)。
想問下:類似的這種需求應(yīng)該怎么設(shè)計(jì)方案?當(dāng)前的方案怎么改進(jìn)?

1257 1 0
1個(gè)回答

walkor 打賞

業(yè)務(wù)代碼是順序執(zhí)行的,從七牛云SDK上傳直到運(yùn)行到推送通知,在這個(gè)過程中workerman內(nèi)核無法得到運(yùn)行權(quán),業(yè)務(wù)邏輯執(zhí)行過程中無法執(zhí)行定時(shí)器的邏輯。
一般上傳類的SDK都有超時(shí)設(shè)置,沒必要用定時(shí)器做。

  • workers 2023-04-20

    如果把上傳的代碼放到定時(shí)器的回調(diào)函數(shù)中執(zhí)行,workerman內(nèi)核是否可以拿到運(yùn)行權(quán)

  • walkor 2023-04-20

    執(zhí)行業(yè)務(wù)的過程中workerman都拿不到運(yùn)行權(quán),包括業(yè)務(wù)里七牛云SDK上傳過程

  • workers 2023-04-20

    提過七牛云的工單,回復(fù)說這個(gè)sdk沒有超時(shí)設(shè)置,只能我這邊請求超時(shí)的時(shí)候結(jié)束進(jìn)程 。老大,有沒有辦法在業(yè)務(wù)執(zhí)行過程中把進(jìn)程結(jié)束了啊

  • walkor 2023-04-20

    改下七牛sdk吧

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