U wont bleev wut dis code doez
-
Upload
rupicon -
Category
Engineering
-
view
101 -
download
0
Transcript of U wont bleev wut dis code doez
U WONT BLEEV WUT DIS CODE DOEZ
IN DA BEGINNIN ALL WUZ NICE
DEN ROGUE ERROR APPEARD#{l(@order.purchased_at, format: :order_date)}
ActionView::Template::ErrorObject must be a Date, DateTime or Time object. nil given.
SILLY PUPPY, PURCHASD AT SHUD NOT BE NIL
HOW CAN PURCHASD AT BE NIL?
TURNS OUT SOMEBODY WUZ SMART
THAR SHUD NOT BE 2 KITTEHS PURCHASIN AT TEH SAME TIEM
@order.with_lock do
add_errors_from(confirmer_command) unless
confirmer_command.perform
end
AN TEH CEILIN KAT SED
Locking::Pessimistic provides support for row-level locking using SELECT … FOR UPDATE
I KNOE HOW DAT WERKZ
t1 select … for update
t2 select … for update
t1 purchased_at = Time.zone.now send_notifications
t2 select … for update returns
AN TEH CEILIN KAT SED
You can start a transaction and acquire the lock in one go by calling with_lock with a block.
WUT DOEZ SEND_NOTIFICATIONS DO
def send_notifications
Resque.enqueue(...)
end
transaction+
Resque.enqueue
TEH FIX WUZ [email protected]_lock do
check_pending_order!
@order.purchased_at = Time.current
@order.confirm!
end
send_notifications
DOAN MAK KITTEHS SAD
LOCK ONLY WUT ABSOLUTELY NECESARYREAD UP ON HOW THINGS WERK