Skip to content

Commit 6348e2f

Browse files
committed
Include async:true on async queries
1 parent fb9bd70 commit 6348e2f

File tree

3 files changed

+26
-0
lines changed

3 files changed

+26
-0
lines changed

lib/rails_semantic_logger/active_record/log_subscriber.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ def sql(event)
3333
log_payload[:binds] = bind_values(payload) unless (payload[:binds] || []).empty?
3434
log_payload[:allocations] = event.allocations if event.respond_to?(:allocations)
3535
log_payload[:cached] = event.payload[:cached]
36+
log_payload[:async] = true if event.payload[:async]
3637

3738
log = {
3839
message: name,

test/active_record_test.rb

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,30 @@ class ActiveRecordTest < Minitest::Test
131131
}
132132
)
133133
end
134+
135+
it "marks async queries with async: true" do
136+
skip "Not applicable to older rails" if Rails.version.to_f < 7.1
137+
138+
expected_sql = 'SELECT COUNT(*) FROM "samples"'
139+
140+
messages = semantic_logger_events do
141+
Sample.count
142+
Sample.async_count.value
143+
end
144+
assert_equal 2, messages.count, messages
145+
146+
messages.each do |message|
147+
assert_semantic_logger_event(
148+
message,
149+
level: :debug,
150+
name: "ActiveRecord",
151+
message: "Sample Count",
152+
payload_includes: {sql: expected_sql}
153+
)
154+
end
155+
refute messages[0].payload.key?(:async)
156+
assert_equal true, messages[1].payload[:async]
157+
end
134158
end
135159
end
136160
end

test/dummy/config/application.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ class Application < Rails::Application
1111
# Configure sensitive parameters which will be filtered from the log file.
1212
config.filter_parameters += [:password]
1313
config.active_record.sqlite3.represent_boolean_as_integer = true if config.active_record.sqlite3
14+
config.active_record.async_query_executor = :global_thread_pool
1415

1516
# Settings in config/environments/* take precedence over those specified here.
1617
# Application configuration should go into files in config/initializers

0 commit comments

Comments
 (0)