福州網(wǎng)站建設(shè)>網(wǎng)站新聞>thinkphp6專區(qū)

        tp6使用問題think-cron 計劃任務(wù)這個擴展怎么用

        發(fā)布日期:2022-03-10瀏覽次數(shù):1596 來源:福州網(wǎng)站建設(shè)

        ThinkPHP 6是一個非常流行的PHP框架,而Think-Cron是一個用于計劃任務(wù)的擴展,可以讓我們輕松地在我們的應(yīng)用程序中管理計劃任務(wù)。在本文中,我們將探討如何在ThinkPHP 6中使用Think-Cron擴展。

        首先,我們需要安裝Think-Cron擴展。可以使用Composer來安裝它。在命令行中運行以下命令:

        composer require topthink/think-cron

        安裝完成后,我們需要在我們的應(yīng)用程序中注冊該擴展。在應(yīng)用程序的config目錄中,找到app.php文件,將以下代碼添加到providers數(shù)組中:

        think\cron\CronService::class,

        現(xiàn)在我們已經(jīng)安裝和注冊了擴展,我們可以開始使用它來管理我們的計劃任務(wù)。

        首先,讓我們創(chuàng)建一個簡單的計劃任務(wù)。在應(yīng)用程序的app目錄中,創(chuàng)建一個名為Task的文件夾。在該文件夾中,創(chuàng)建一個名為Test.php的PHP文件。在該文件中,創(chuàng)建一個名為test的方法。該方法將輸出一個簡單的字符串。

        namespace app\Task;
        
        class Test
        {
            public function test()
            {
                echo 'This is a test.';
            }
        }

        現(xiàn)在我們已經(jīng)創(chuàng)建了一個簡單的計劃任務(wù),讓我們使用Think-Cron來管理它。在應(yīng)用程序的config目錄中,找到cron.php文件,該文件包含了我們應(yīng)用程序中所有的計劃任務(wù)。

        讓我們向該文件中添加我們的Test計劃任務(wù)。在tasks數(shù)組中,添加以下代碼:

        'test' => [
            'type'  => 'command',
            'command' => '\app\Task\Test::test',
            'cron'  => '* * * * *',
            'output' => '/path/to/output.log',
        ],

        在上面的代碼中,我們定義了一個名為test的計劃任務(wù)。該任務(wù)的類型是command,指定了要運行的命令。我們使用命名空間和類名來指定要運行的任務(wù)方法。我們還定義了一個cron表達(dá)式,該表達(dá)式指定了任務(wù)運行的時間。最后,我們指定了要將任務(wù)輸出寫入的文件路徑。

        現(xiàn)在我們已經(jīng)定義了我們的計劃任務(wù),讓我們使用Think-Cron來運行它。在命令行中,運行以下命令:

        php think cron:run

        這將運行所有已定義的計劃任務(wù)。如果您只想運行特定的任務(wù),請使用以下命令:

        php think cron:run test

        這將只運行我們之前定義的test任務(wù)。

        現(xiàn)在您已經(jīng)了解了如何在ThinkPHP 6中使用Think-Cron擴展來管理計劃任務(wù)。這個擴展非常強大,可以讓您輕松地管理您的應(yīng)用程序中的所有計劃任務(wù)。

        百度了一下,沒有關(guān)于think-cron 計劃任務(wù)擴展的文章
        看github寫的是計劃任務(wù) for thinkphp5
        thinkphp6能用不

        補充:
        thinkphp6多應(yīng)用模式下:
        app\common\crontab\DemoTask.php代碼:namespace app\common\crontab;
        use yunwuxin\cron\Task;
        class DemoTask extends Task
        {
            public function configure()
            {
                $this->everyMinute(); //設(shè)置任務(wù)的周期,每天執(zhí)行一次,更多的方法可以查看源代碼,都有注釋
            }
            /**
             * 執(zhí)行任務(wù)
             * return mixed
             */
            protected function execute()
            {
                echo "執(zhí)行任務(wù) 時間:".date('H:i:s',time());
                //...具體的任務(wù)執(zhí)行
            }
        }config\cron.php代碼:return [
            'tasks' => [
                \app\common\crontab\DemoTask::class, //任務(wù)的完整類名
            ]
        ];運行php think cron:schedule后
        提示:
        [InvalidArgumentException]
        There are no commands defined in the "cron" namespace.

        以上是由福州網(wǎng)站建設(shè)的小編為你分享了"tp6使用問題think-cron 計劃任務(wù)這個擴展怎么用"文章,如果你在這方面有什么問題,隨時聯(lián)系我們

        網(wǎng)友評論

        • qqq2623 03月10日

          請問解決了嘛 ? 我也出了這個問題!

        • yzh52521 2019年11月14日

          可以用

        • kukala 2019年11月15日

          回復(fù) yzh52521 : 那奇怪了
          composer.json里
          "topthink/framework": "^6.0.0",
          "yunwuxin/think-cron": "^3.0"
          thinkphp 幫忙看下了

        • yzh52521 2019年11月15日

          回復(fù) kukala : 這里運行沒問題

        • kukala 2019年11月15日

          您好,能否看下我補充的內(nèi)容,謝謝

        thinkphp6專區(qū)有關(guān)的文章
        如果您有什么問題,歡迎咨詢我們客服! 點擊QQ咨詢