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

crontab定時(shí)任務(wù)組件,秒級(jí)任務(wù)會(huì)重復(fù)執(zhí)行

september

bug描述

定時(shí)任務(wù)組件,1s執(zhí)行一次的任務(wù)經(jīng)常會(huì)重復(fù)執(zhí)行

程序代碼

        new \Workerman\Crontab\Crontab('*/1 * * * * *', function () {
            $time = time();
            $timeLock = "task_lock:" . $time;
            if (Redis::exists($timeLock)) {
                echo "當(dāng)前秒存在任務(wù)";
                return;
            }
            Redis::set($timeLock, 1);
            echo date('Y-m-d H:i:s') . PHP_EOL;
        });

期待的結(jié)果及實(shí)際結(jié)果

這里是輸出
2023-02-17 09:38:00
當(dāng)前秒存在任務(wù)2023-02-17 09:38:01
當(dāng)前秒存在任務(wù)2023-02-17 09:38:02
當(dāng)前秒存在任務(wù)2023-02-17 09:38:03
當(dāng)前秒存在任務(wù)2023-02-17 09:38:04
當(dāng)前秒存在任務(wù)2023-02-17 09:38:05
當(dāng)前秒存在任務(wù)2023-02-17 09:38:06
當(dāng)前秒存在任務(wù)2023-02-17 09:38:07
當(dāng)前秒存在任務(wù)2023-02-17 09:38:08
當(dāng)前秒存在任務(wù)2023-02-17 09:38:09
當(dāng)前秒存在任務(wù)2023-02-17 09:38:10
當(dāng)前秒存在任務(wù)2023-02-17 09:38:11
當(dāng)前秒存在任務(wù)2023-02-17 09:38:12
當(dāng)前秒存在任務(wù)2023-02-17 09:38:13
當(dāng)前秒存在任務(wù)2023-02-17 09:38:14
當(dāng)前秒存在任務(wù)2023-02-17 09:38:15
當(dāng)前秒存在任務(wù)2023-02-17 09:38:16
當(dāng)前秒存在任務(wù)2023-02-17 09:38:17

系統(tǒng)環(huán)境及workerman/webman等具體版本

mac和linux出現(xiàn)了,workerman/crontab版本v1.0.4

2460 3 0
3個(gè)回答

admin

是不是因?yàn)槎噙M(jìn)程的關(guān)系 被并發(fā)執(zhí)行了

  • september 2023-02-17

    webman框架下調(diào)用的定時(shí)任務(wù)組件,基本都是默認(rèn)配置

  • september 2023-02-17

    是偶爾出現(xiàn),不是一直出現(xiàn)

walkor 打賞

如果你開了2個(gè)進(jìn)程,每個(gè)進(jìn)程定時(shí)執(zhí)行一次可能會(huì)出現(xiàn)這種情況

  • september 2023-02-17

    老大好,配置項(xiàng)是webman默認(rèn)的配置,這個(gè)在哪里看呢

  • walkor 2023-02-17

    webman進(jìn)程數(shù)在 config/server.php 里用count設(shè)置。
    自定義進(jìn)程在config/process.php里用count參數(shù)設(shè)置。

  • september 2023-02-17

    process.php設(shè)置是這樣的,沒有設(shè)置count<?php
    /**

    use Workerman\Worker;

    return [
    // File update detection and automatic reload
    'monitor' => [
    'handler' => process\Monitor::class,
    'reloadable' => false,
    'constructor' => [
    // Monitor these directories
    'monitor_dir' => array_merge([
    app_path(),
    config_path(),
    base_path() . '/process',
    base_path() . '/support',
    base_path() . '/resource',
    base_path() . '/.env',
    ], glob(base_path() . '/plugin//app'), glob(base_path() . '/plugin//config'), glob(base_path() . '/plugin/*/api')),
    // Files with these suffixes will be monitored
    'monitor_extensions' => [
    'php', 'html', 'htm', 'env'
    ],
    'options' => [
    'enable_file_monitor' => !Worker::$daemonize && DIRECTORY_SEPARATOR === '/',
    'enable_memory_monitor' => DIRECTORY_SEPARATOR === '/',
    ]
    ]
    ],
    'task' => [
    'handler' => process\Task::class
    ],
    ];

yzh52521

如果一個(gè)進(jìn)程 你加redis 就是毫無意義 ,本來就是 一秒執(zhí)行一次

  • september 2023-02-17

    執(zhí)行了兩次,所以我加鎖了...

  • yzh52521 2023-02-17

    執(zhí)行兩次說明2個(gè)進(jìn)程唄

  • yzh52521 2023-02-17

    設(shè)置 count =1

  • september 2023-02-17

    我試試

  • september 2023-02-17

    process.php 里設(shè)置了 'task' => [
    'handler' => process\Task::class,
    'count' => 1
    ],還是有重復(fù)執(zhí)行的

  • walkor 2023-02-17

    定時(shí)器放在哪里執(zhí)行的。把process.php里'task'進(jìn)程配置刪除,看下是否還有地方執(zhí)行定時(shí)器

  • september 2023-02-17

    定時(shí)器只配置在process.php中執(zhí)行,刪除后沒有再執(zhí)行過了

  • september 2023-02-17

    已發(fā)送

  • walkor 2023-02-17

    你的workerman/crontab不是最新的,升級(jí) workerman/crontab 升級(jí)到 v1.0.6

    composer workerman/crontab ^1.0.6
  • september 2023-02-17

    我試試

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