学習36日目 sleepについて
こんにちはKATUUUNです。
オリンピックでは陸上競技を主に見ていました。男子4✖️100mリレーで日本代表のバトンミスは本当に胸が痛みました。まるで自分があの場にいるかのような錯覚をしてしまい、泣きそうになりました。
オリンピックの終わりと同時に私は新たな開発を始めました。フリマアプリの開発がひと段落して、今度はオリジナルアプリを開発してしていきます。要件定義やDB設計など、事前の準備をしっかりしてから取り掛かりたいです。
今日はフリマアプリの振り返りとしてsleepについて語りたいと思います。
背景
商品の購入機能の際、モデル単体テストコードを記載して、テストコードを実施して見たところ、
ActiveRecord::StatementInvalid: Mysql2::Error::ConnectionError: Lost connection to MySQL server during query
のエラーが発生しました。
原因
DBや外部サイトなどにアクセスするときに、連続でアクセスすると負荷がかかりすぎてしまうようです
対策
ここでsleepを使います。sleepは、一定時間、rubyプログラムの実行をストップするメソッドです。一定時間経過後、次の行から実行が再開します。
購入情報のテストコードファイル
RSpec.describe PurchaseAddress, type: :model do describe '購入情報の保存' do before do user = FactoryBot.create(:user) display = FactoryBot.create(:display) @purchase_address = FactoryBot.build(:purchase_address, user_id: user.id, display_id: display.id) sleep 0.1 end
以上です。ありがとうございました。