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

webman,定時任務(wù),奇怪現(xiàn)象

evilk

1.
config/app.php

return [
    'debug' => true,
    'default_timezone' => 'Asia/Shanghai',
];

2.
process/test.php(每天早上10點 和 11點,這樣是可以準(zhǔn)時執(zhí)行的,查看對應(yīng)的日志,有內(nèi)容輸出)

public function onWorkerStart(Worker $worker)
{
        $workerId = $worker->id;

        new Crontab('0 0 10,11 * * *', function () use ($workerId) {
            echo date('Y-m-d H:i:s') . PHP_EOL;
        });
}

3.
但如果把定時任務(wù)換成如下(每天凌晨1點 和 每天凌晨4點)
定時任務(wù)就不會執(zhí)行

public function onWorkerStart(Worker $worker)
{
        $workerId = $worker->id;

        new Crontab('0 0 1,4 * * *', function () use ($workerId) {
            echo date('Y-m-d H:i:s') . PHP_EOL;
        });
}

4.

  • 昨天下午下班后,任務(wù)時間設(shè)置為 0 0 1,4 * * *,啟動服務(wù),今天早上發(fā)現(xiàn)沒有對應(yīng)的日志輸出
  • 然后,調(diào)整定時任務(wù)執(zhí)行時間為 0 0 10,11 * * *,然后 restart 服務(wù)
  • 早上10點 和 早上11點,分別有對應(yīng)的日志輸出
  • 連續(xù)兩天,都是這樣測試的
  • 百思不得其解
2427 2 0
2個回答

yzh52521
 0 10,11 * * *

這是10點11點

 0 1,4 * * *

這是 1點4點

  • Tinywan 2022-04-08

    O(∩_∩)O哈哈~

  • evilk 2022-04-08

    下班之前,定時任務(wù),設(shè)置為 0 0 1,4 * * *,啟動服務(wù),早上來公司,發(fā)現(xiàn)沒有日志輸出
    然后,再調(diào)整為0 10,11 * * *,早上10點 和 早上11點,有日志輸出
    這就有問題了啊
    為啥凌晨的任務(wù)沒有執(zhí)行呢

  • iqige 2022-04-08

    0 0 1,4 * 這個不是凌晨1點和4點,看上面

  • evilk 2022-04-09

    請問大佬
    為什么設(shè)置為 new Crontab('0 1,4 * * *',在凌晨1點 和 凌晨4點,依然沒有執(zhí)行呢?

  • czf 2022-04-09

    定時任務(wù)的執(zhí)行規(guī)則,在分鐘級的定義時,與 Linux 的 crontab 命令的規(guī)則一致,在秒級的定義時,規(guī)則長度從 5 位變成 6 位,在規(guī)則的前面增加了對應(yīng)秒級的節(jié)點,也就是 5 位時以分鐘級規(guī)則執(zhí)行,6 位時以秒級規(guī)則執(zhí)行,如 /5 則代表每 5 秒執(zhí)行一次。注意在注解定義時,規(guī)則存在 \ 符號時,需要進(jìn)行轉(zhuǎn)義處理,即填寫 \/5

evilk

為什么設(shè)置為 new Crontab('0 1,4 * * *',在凌晨1點 和 凌晨4點,依然沒有執(zhí)行呢?

  • Tinywan 2022-04-09

    先學(xué)習(xí)一下crontab表達(dá)式:https://www.runoob.com/linux/linux-comm-crontab.html

  • evilk 2022-04-09

    看了一下,這個表達(dá)式是沒問題的,只是沒數(shù)據(jù),所以沒有日志輸出,謝謝大佬

  • Tinywan 2022-04-09

    你日志輸出是寫入日志文件,還是在終端輸出的

  • evilk 2022-04-09

    寫入日志的,是這樣的

    Db::table(CustomerModel::$table)
                        ->where(CustomersEntity::TBC_star_balance, '>', 0)
                        ->select([CustomersEntity::TBC_id, CustomersEntity::TBC_level_id])
                        ->chunkById(10000, function ($customers) {
                            /**
                             * 通過隊列處理,啟動多個消費者,提高處理速度
                             */
                            Client::send((new CheckCustomerLevelConsumer())->queue, json_encode(['customers' => $customers]));
                        });

    因為沒有符合條件的結(jié)果,所以永遠(yuǎn)不會走到回調(diào)函數(shù)內(nèi),所以不會發(fā)送數(shù)據(jù)到隊列里
    我在隊列里,把接收到的數(shù)據(jù),寫入日志

  • Tinywan 2022-04-09

    你最好是移除掉你的業(yè)務(wù)邏輯,直接使用系統(tǒng)自帶日志系統(tǒng)Log(Log::info('xxxxxxxxxxxx')),嘗試記錄日志。先排查是不是定時任務(wù)插件的問題。繼而排查業(yè)務(wù)問題。(初步判斷是你業(yè)務(wù)和隊列有問題)

  • evilk 2022-04-09

    是的
    就打算這樣排查
    謝謝大佬

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