请教下webman中可以使用sleep吗,不能的话有别的办法吗

咸鱼.php

问题描述

请教下webman中可以使用sleep吗,不能的话有别的办法吗

使用场景

几十万数据导出导致数据库占用100%影响其他业务,想在导出的过程中sleep下,给数据库一些缓冲。

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

null

574 1 0
1个回答

chaz6chez

什么场景下需要用到sleep;
先描述一下场景吧

  • 咸鱼.php 2023-11-25

    大佬,是这样的,几十万数据导出导致数据库占用100%影响其他业务,想在导出的过程中sleep下,给数据库一些缓冲。
    嘿嘿嘿,有啥办法嘞

  • meows 2023-11-25

    单独开个worker去导出就行了,如果你觉得快也可以usleep()一下,但是不能在处理http请求worker写sleep()

  • chaz6chez 2023-11-25

    sleep会挂起进程,如果是单独的进程无所谓挂起了就挂起了;不想挂起进程也可以用定时器导出,也能达到sleep的效果

  • 咸鱼.php 2023-11-25

    请教下,如果是开4个进程,使用了sleep会导致4个都挂起吗,还是只会导致运行了sleep的那一个挂起呀?

  • meows 2023-11-25

    如果你写onWorkerStart 里面都会sleep,你可以通过workerId区分即可,具体看Workerman 手册。
    会不会sleep()你自己试一试就知道了。

  • chaz6chez 2023-11-25

    进程之间是隔离的,a进程的sleep只影响a

🔝