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

Crontab 阻塞的問(wèn)題

forwebreg

問(wèn)題描述

這里寫(xiě)問(wèn)題描述

<?php

namespace crontab;

use Workerman\Crontab\Crontab;

class Test
{
    public function onWorkerStart()
    {
        //CrontabA
        new Crontab('*/1 * * * * *', function () {
            echo date('Y-m-d H:i:s')."-1\n";
        });
        //CrontabB
        new Crontab('0 */1 * * * *', function () {
            echo date('Y-m-d H:i:s')."-5\n";
            sleep(5);
        });
    }
}

不知道是不是我理解得有問(wèn)題 手冊(cè)上講是阻塞的
按這個(gè)理解 應(yīng)該是 CrontabA執(zhí)行一次 CrontabB執(zhí)行一次 阻塞5秒 然后執(zhí)行CrontabA
輸出應(yīng)該是

XXXX-XX-XX XX:XX:00-1
XXXX-XX-XX XX:XX:00-5
XXXX-XX-XX XX:XX:05-1
XXXX-XX-XX XX:XX:06-1
XXXX-XX-XX XX:XX:07-1
XXXX-XX-XX XX:XX:08-1
....

但是我執(zhí)行起來(lái)發(fā)現(xiàn)輸出是

XXXX-XX-XX XX:XX:00-1
XXXX-XX-XX XX:XX:00-5
XXXX-XX-XX XX:XX:05-1  //
XXXX-XX-XX XX:XX:05-1  // 這幾個(gè)是
XXXX-XX-XX XX:XX:05-1  // 一下輸出
XXXX-XX-XX XX:XX:05-1  // 5次的
XXXX-XX-XX XX:XX:05-1  //
XXXX-XX-XX XX:XX:06-1
XXXX-XX-XX XX:XX:07-1
XXXX-XX-XX XX:XX:08-1
....

是我理解不對(duì)嗎

429 4 0
4個(gè)回答

nitron

是的,你理解不對(duì)

注意
定時(shí)任務(wù)不會(huì)馬上執(zhí)行,所有定時(shí)任務(wù)進(jìn)入下一分鐘才會(huì)開(kāi)始計(jì)時(shí)執(zhí)行。
與workerman定時(shí)器一樣,任務(wù)全部在當(dāng)前進(jìn)程執(zhí)行,如果任務(wù)沒(méi)執(zhí)行完到了下個(gè)執(zhí)行周期則會(huì)等待當(dāng)前任務(wù)執(zhí)行完,新任務(wù)執(zhí)行會(huì)延后。

  • 暫無(wú)評(píng)論
kof21411

阻塞不等于阻止

xiaoming

同一個(gè)時(shí)刻 只能執(zhí)行一個(gè)邏輯

  • 暫無(wú)評(píng)論
胡桃
<?php

namespace crontab;

use Workerman\Crontab\Crontab;

class Test
{
    public function onWorkerStart()
    {
        //CrontabA
        new Crontab('*/1 * * * * *', function () { // 每秒鐘執(zhí)行一次
            echo date('Y-m-d H:i:s')."-1\n";
        });
        //CrontabB
        new Crontab('0 */1 * * * *', function () { // 每分鐘第 0 秒 執(zhí)行一次
            echo date('Y-m-d H:i:s')."-5\n";
            sleep(5); // 此處會(huì)阻塞進(jìn)程 5 秒鐘,相當(dāng)于執(zhí)行 CrontabB 時(shí),整個(gè)進(jìn)程都在等著 CrontabB 執(zhí)行完畢,CrontabA 會(huì)一直延后,累積 5 次后,CrontabB 執(zhí)行完畢的瞬間執(zhí)行 5 次被延后的 CrontabA
        });
    }
}
  • 胡桃 2025-04-12

    使用異步 IO 函數(shù)代替 sleep(),比如 Swoole 的 co::sleep()

??