diff options
Diffstat (limited to 'lib/gitlab/sidekiq_middleware/size_limiter/exceed_limit_error.rb')
-rw-r--r-- | lib/gitlab/sidekiq_middleware/size_limiter/exceed_limit_error.rb | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/gitlab/sidekiq_middleware/size_limiter/exceed_limit_error.rb b/lib/gitlab/sidekiq_middleware/size_limiter/exceed_limit_error.rb new file mode 100644 index 00000000000..da6c903ccae --- /dev/null +++ b/lib/gitlab/sidekiq_middleware/size_limiter/exceed_limit_error.rb @@ -0,0 +1,29 @@ +# 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 |