記録

Laravelのスケジュール覚書、初心を忘れずに。#chatGPTの罠

おはようございます、laravelのスケジュールを触ってみて。躓いた点は一点だけ。スケジュールリストに登録されているけど、動作しなかった。chatGPT3の罠に引っかかりました。chatGPTはもっともらしいコードを書いてくれるけど、たまに動作しないコードも出力されます。それにまんまと引っかかり、沼から出てこれなくなる所でした。

Laravelはお利口さんだから、上手くやってくれるだろうとJob側のコンストラクタには何も記述しなかったのが間違い。コマンドで行わない場合は下記の記述は絶対らしい。

<?php

namespace App\Jobs;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Http;

class WebsiteMonitor implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct()
    {
    }
    public function __invoke()
    {
        $this->handle();
    }
    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
     //行いたい処理🐺
    }
<?php

namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
use App\Jobs\WebsiteMonitor;
class Kernel extends ConsoleKernel
{
    /**
     * Define the application's command schedule.
     *
     * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        // どちらでもOK👉 $schedule->job(new WebsiteMonitor)->everyFifteenMinutes();
        $schedule->call(function () {
            dispatch(new WebsiteMonitor());
        })->everyFifteenMinutes();
    }

    /**
     * Register the commands for the application.
     *
     * @return void
     */
    protected function commands()
    {
        $this->load(__DIR__.'/Commands');

        require base_path('routes/console.php');
    }
}

行いたい処理を書いたら、カーネルに処理を登録してcronに下記のように記述する。

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

これで処理が定期的に実行されます。尚、参考サイトとしてこちらに詳しい情報が書かれています。







    ツイッターのDM内容をOpenAI api(chatGPT)で判別しスパムの場合ブロックする。#ソースコード前のページ

    ブログの書き方とかを見直したので報告。 #原案次のページphotography of stones

    関連記事

    1. 記録

      今読まれてますというWPプラグインの作り方

      今読まれてますというWP(ワードプレス)プラグインの作り方はこれだけ…

    2. 記録

      駄目な会社でも会社は続くし良い会社でも会社は潰れる。

      駄目な会社でも会社は続くし良い会社でも会社は潰れる。社員が不満がア…

    3. white mug on red background

      記録

      若気の至り若気の過ちか?Mr.ROBOT🤖

      こんばんは、深夜便で東京に向かってます(嘘です)。今日は緊急…

    4. 記録

      国際IQテストを受けてみたら。

      国際IQテストを受けてみたら、まぁまぁな結果をお初で得ること…

    5. 記録

      Windows10が発表されました。正直、買う必要あるの?

      Windows10は正直、買う必要あるのか疑問です。散々、ユーザーから…

    6. pile of books

      記録

      人類の不都合な真実・こんなタイトルあったよね🤐

      おはようございます、この頃、朝に記事を書くようになりました😌。…

    2023年4月
     12
    3456789
    10111213141516
    17181920212223
    24252627282930

    カテゴリー

    アーカイブ

    PAGE TOP