タグ

2019年5月18日のブックマーク (4件)

  • Railsのデータロック - Qiita

    begin ActiveRecord::Base.transaction do . . raise 'ロールバックします' end p 'コミット' # トランザクション処理を確定 rescue => e p 'ロールバック' # トランザクション処理を戻す end transactionブロックの中で登録・更新処理を行う場合は、saveやupdateではなく、save!, update!を使用する。 transactionブロックの中で複数のモデルの更新を行った後に例外を発生させると、全部のモデルがロールバックする。 楽観的ロック 「競合は多分起きないだろう」という前提で、データの取得時には何もせず、更新時に競合をチェックする方法。 レコードのバージョン管理を行うため、テーブルにlock_versionカラムを追加する。その際、デフォルト値を0にする。 lock_versionはレコード

    Railsのデータロック - Qiita
  • 排他制御(楽観ロック・悲観ロック)の基礎  - Qiita

    排他制御とは 共有資源(データやファイル)に対して複数のアクセスが見込まれる場合に、同時アクセスにより不整合が発生することを防ぐため、あるトランザクションが共有資源(データやファイル)にアクセスしている時は他トランザクションからはアクセスできないようにして直列に処理されるように制御すること。 ■同時アクセスによる不整合の例 ■排他制御をすることで整合性を保つ 排他制御の方式 排他制御の実現方式はいくつか存在するが、ここでは代表的な楽観ロック(楽観的排他制御)と悲観ロック(悲観的排他制御)を紹介する。 楽観ロック(楽観的排他制御) 楽観ロックとは、めったなことでは他者との同時更新は起きないであろう、という楽観的な前提の排他制御。データそのものに対してロックは行わずに、更新対象のデータがデータ取得時と同じ状態であることを確認してから更新することで、データの整合性を保証する方式。楽観ロックを使用

    排他制御(楽観ロック・悲観ロック)の基礎  - Qiita
  • A Quick Intro to Quantum Computing

    B2C is proud to bring you this article from our sponsored series by Upwork: Upwork is the leading online talent solution empowering businesses with flexible access to quality talent, on demand. Companies have access to a global pool of proven professionals in over 8,000 skills—from creative & design to software development. Visit Upwork today. Learn more about Upwork  › Shutterstock We’ve looked b

    A Quick Intro to Quantum Computing
  • 優秀な人を採用できない「本当の理由」

    「優秀な人が採用できずに困っています」 どの会社の、どんなポジションの、どのような方に相談を受けても、必ず出るのがこの話。 各社それぞれの採用基準があり、同じ背景である会社は2つと存在しません。しかし悩みは共通であることが多いです。 「問題を一つ一つ因数分解してみませんか?」と伝えた上で、その原因を一緒に考えてみます。 よく聞く悩み細かな部分は違えど大きく以下3つにわけられるのではないか?と言うくらい同じ話をお聞きします。 1.会社の知名度がなくていい人が来ません 2.出せる給与水準に見合う方が来ません 3.欲しい人(マッチングする人)が来ません あとこちらもですね 4.いい人事担当がいない 1.会社の知名度がなくていい人が来ません

    優秀な人を採用できない「本当の理由」