0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Laravel】XServerでメールをJobで送信するようにする

Posted at

はじめに

こんにちは、エンジニアのkeitaMaxです。

Xserverでメールを送る処理を作成したいと思った時の話です。

本当はSupervisorで動かしたかったのですが、XServerだと動かすことができなさそうだったので困った話です。

Lravael10を使用しました。

実装方法

XServerのCronを設定して、Laravelのスケジューラを動かし、
スケジューラに設定してあるqueueを動かす+リスタートするバッチを動かすようにします。

XServerのCron設定

まずXServerのCron設定からCron設定追加をします。

毎分動かすようにするので以下のようにします。

スクリーンショット 2024-10-08 22.07.49.png

cd /home/xxxxxxxx/hack/src && /usr/bin/php8.2 artisan schedule:run >> /dev/null 2>&1

phpは自分のバージョンを記載してください

またxxxxxxxxは自分のXserverのIDを入れてください。xs〜〜〜〜みたいなやつです。

Laravelの設定

app/console/Kernel.phpに以下を追加します。

Kernel.php
<?php

namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel
{
    /**
     * Define the application's command schedule.
     */
    protected function schedule(Schedule $schedule): void
    {
        $schedule->command('queue:restart')->everyMinute(); // 追加
        $schedule->command('queue:work')->everyMinute(); // 追加
    }

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

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

これで準備万端です。

動かす

ソースをXServerにあげると動くようになり、メールが送られます。

おわりに

この記事での質問や、間違っている、もっといい方法があるといったご意見などありましたらご指摘していただけると幸いです。

最後まで読んでいただきありがとうございました!

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?