File: job_runtime.rb

package info (click to toggle)
rails 2%3A7.2.2.1%2Bdfsg-7
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 43,352 kB
  • sloc: ruby: 349,799; javascript: 30,703; yacc: 46; sql: 43; sh: 29; makefile: 27
file content (23 lines) | stat: -rw-r--r-- 647 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# frozen_string_literal: true

require "active_record/runtime_registry"

module ActiveRecord
  module Railties # :nodoc:
    module JobRuntime # :nodoc:
      private
        def instrument(operation, payload = {}, &block)
          if operation == :perform && block
            super(operation, payload) do
              db_runtime_before_perform = ActiveRecord::RuntimeRegistry.sql_runtime
              result = block.call
              payload[:db_runtime] = ActiveRecord::RuntimeRegistry.sql_runtime - db_runtime_before_perform
              result
            end
          else
            super
          end
        end
    end
  end
end