No commit activity in last 3 years
No release in over 3 years
Thread actions with Airbrake notofication.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.11
~> 10.0

Runtime

 Project Readme

AirbrakeNotifyingThreads

Threads with exception rescue and airbrake notice delivering ( You need to configure airbrake for you application previously ). Add the original stack to the notice, not the thread clear stack.

Suitable for handling simple one liners, like email.deliver, or some external calls which can be async.

Do not use it if you are dealing with thread unsafe code.

AirbrakeNotifyingThreads (рус)

Небольшой инструментик для исполнения коротких асинхронных методов с ловлей эксепшенов и доставкой их через Airbrake. Не стоит использовать, если код не thread safe. Потому что внутри это Thread.

См. примеры использования.

Installation

Add this line to your application's Gemfile:

gem 'airbrake_notifying_threads'

And then execute:

$ bundle

Or install it yourself as:

$ gem install airbrake_notifying_threads

Usage

class User
  # Using NotifyingThread class Ex:
  # devise async mail delivering with threads
  def send_devise_notification(notification, *args)
      # don't forget email not sended without deliver
      message = devise_mailer.send(notification, self, *args)
      
      # this is the params you want to anylise whgen something crashes here
      add_to_airbrake_notice = attributes.slice('email', 'name', 'surname', 'cell', 'id')
      
      # run message delivering
      NotifyingThread.run_async_with_rescue(add_to_airbrake_notice) { message.deliver }
  end
  
  #Using AirbrakeNotifyingThreads module 
  include AirbrakeNotifyingThreads
  
  # making some external call async, for example push some data in SalesForce app
  def send_to_sf
    # sf_params - is the params you want to anylise whgen something crashes here, in this case it's params sended to SF app
    run_async_with_rescue(sf_params) { send_sf_raw }
  end
  
end  
  

License

The gem is available as open source under the terms of the MIT License.