PHP

Laravel トランザクション リトライ設定 DB:Transaction()

Laravel

 

この記事で紹介すること

  • try catchを利用する
  • リトライ回数を指定
  • 失敗時にロールバックしてログ出力

 

 

ざっくりこう

        try {
            $retries = (int)3; // トランザクションリトライ回数
            DB::beginTransaction(null, $retries);

            // データベースの一連の処理

            DB::commit();

            $message = Config::get('mail.message.add_user_success');
            return $message;
        } catch (\Illuminate\Database\QueryException $e) {
            // トランザクションでのエラー処理
            DB::rollback();
            Log::error('WEB /users/me/verify - Class ' . get_class() . ' - PDOException Error. Rollback was executed.' . $e->getMessage());

            return response()->json([
                'error' => Config::get('error.databaseTransactionRollback')
            ]);
        } catch (\Exception $e) {
            // その他のエラー処理
            DB::rollback();
            Log::error('WEB /users/me/verify - Class ' . get_class() . ' - something went wrong elsewhere.' . $e->getMessage());

            return response()->json([
                'error' => Config::get('error.databaseSomethingWentWrongError')
            ]);
        }

 

 

 

 

Amazonおすすめ

iPad 9世代 2021年最新作

iPad 9世代出たから買い替え。安いぞ!🐱 初めてならiPad。Kindleを外で見るならiPad mini。ほとんどの人には通常のiPadをおすすめします><

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)