@@ -246,18 +246,17 @@ def publishing(hostname: Socket.gethostname,
246246
247247 ActiveRecord ::Base . connection_pool . with_connection do
248248 ActiveRecord ::Base . transaction do
249- id , lock_version , messageable_type , messageable_id =
250- Models ::Message
251- . where ( status : Status ::QUEUED )
252- . order ( :id )
253- . limit ( 1 )
254- . lock ( "FOR UPDATE SKIP LOCKED" )
255- . pluck ( :id , :lock_version , :messageable_type , :messageable_id )
256- . first
257-
258- if id . presence
249+ message_row = Models ::Message
250+ . where ( status : Status ::QUEUED )
251+ . order ( :id )
252+ . limit ( 1 )
253+ . lock ( "FOR UPDATE SKIP LOCKED" )
254+ . pluck ( :id , :lock_version , :messageable_type , :messageable_id )
255+ . first
256+
257+ if message_row . presence
259258 Models ::Message
260- . where ( id : id )
259+ . where ( id : message_row [ 0 ] )
261260 . update_all ( [
262261 "lock_version = lock_version + 1, status = ?, updated_at = ?, publishing_at = ?" ,
263262 Status ::PUBLISHING , current_utc_time , current_utc_time
@@ -274,10 +273,10 @@ def publishing(hostname: Socket.gethostname,
274273 ] )
275274
276275 {
277- id : id ,
278- lock_version : lock_version + 1 ,
279- messageable_type : messageable_type ,
280- messageable_id : messageable_id
276+ id : message_row [ 0 ] ,
277+ lock_version : message_row [ 1 ] + 1 ,
278+ messageable_type : message_row [ 2 ] ,
279+ messageable_id : message_row [ 3 ]
281280 }
282281 end
283282 end
@@ -309,7 +308,7 @@ def published(id:, lock_version:,
309308 message_row = Models ::Message
310309 . lock ( "FOR UPDATE" )
311310 . where ( id : id , lock_version : lock_version , status : Status ::PUBLISHING )
312- . pluck ( :id , :lock_version , :status )
311+ . pluck ( :id )
313312 . first
314313
315314 if message_row . nil?
0 commit comments