1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Laravel Queつまずいたところメモ

Posted at

失敗したJob用のテーブルを忘れず作る

Jobが失敗した場合に、failed_jobsテーブルに状況を格納する。
なくても、Jobの実行自体はできるが、Job失敗したときにDB書き込みに失敗のログがたまるので、テーブルを作成しておく。

failed_jobsテーブル作成コマンド
php artisan queue:failed-table
php artisan migrate

ジョブが失敗した際の試行回数 tries

classにグローバル変数 $triesを設定することで試行回数を設定できる。

class Hoge
{

    /**
     * 最大実行回数
     *
     * @var int
     */
    public $tries = 1;
}

$tries の試行回数は、最大実行回数 なので、 $tries = 1; ならエラーで再実行しない。
$tries = 2; ならエラー時に一回だけ、再実行する。

ここで、0を指定するとエラーで無制限に再実行を試みるようで、
Jobを管理する jobs テーブルの attempts のカウンター(属性がtinyint unsigned)が振り切れてエラーが起こりました。

※内部ログなので画面上は反応なし

AzureのApp Service(Windows)へのJobの登録

App Service自体のWeb ジョブを使えばクリックで登録できます。
workerコマンドをwindows用のcmdに流したいので、以下の.cmdファイルを作成し

WebJobでLaravelQueueを動かす
php %HOME%\site\wwwroot\artisan queue:work

Webジョブの追加ボタンから、アップします。
それ以外の項目は、下を選ぶのが良さそう。

種類:継続
スケール:マルチインスタンス

以上です。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?