You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
16 lines
561 B
16 lines
561 B
class ApplicationController < ActionController::Base
|
|
MAX_DURATION_TO_COMPLETE_IN_SECONDS = 3
|
|
|
|
around_action do |_, action|
|
|
start = Process.clock_gettime(Process::CLOCK_MONOTONIC)
|
|
begin
|
|
action.call
|
|
ensure
|
|
ActionView::Base.logger.level = :info
|
|
duration = Process.clock_gettime(Process::CLOCK_MONOTONIC) - start
|
|
if duration > MAX_DURATION_TO_COMPLETE_IN_SECONDS
|
|
logger.warn("processing took too long to complete, please review your code as asynchronous job!", duration: duration * 1_000)
|
|
end
|
|
end
|
|
end
|
|
end
|