30 lines
775 B
Ruby
30 lines
775 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module Gitlab
|
||
|
module SidekiqMiddleware
|
||
|
module SizeLimiter
|
||
|
# A custom exception for size limiter. It contains worker class and its
|
||
|
# size to easier track later
|
||
|
class ExceedLimitError < StandardError
|
||
|
attr_reader :worker_class, :size, :size_limit
|
||
|
|
||
|
def initialize(worker_class, size, size_limit)
|
||
|
@worker_class = worker_class
|
||
|
@size = size
|
||
|
@size_limit = size_limit
|
||
|
|
||
|
super "#{@worker_class} job exceeds payload size limit (#{size}/#{size_limit})"
|
||
|
end
|
||
|
|
||
|
def sentry_extra_data
|
||
|
{
|
||
|
worker_class: @worker_class.to_s,
|
||
|
size: @size.to_i,
|
||
|
size_limit: @size_limit.to_i
|
||
|
}
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|