2016-10-18 8 views
1

У меня есть фоновая работа в рельсах, которая выполняет некоторую обработку, и если этот процесс работы (rake task) завершается из-за этого исключения SignalException: SIGHUP, я хочу отправить чтобы мы снова могли перезапустить рейк.Можно ли обрабатывать SignalException: SIGHUP во время работы rake

Можно ли избавиться от этого исключения, хотя процесс все равно прекратится, но по крайней мере, если я могу отправить электронное письмо до его завершения.

Пожалуйста, помогите.

Пример кода:

task :generate_best_bets_for_all_users do 
    begin 
    // do some processing 
    // if something is wrong 
    rescue SignalException => e 
    // OK? to rescue this exception?, is this possible? I want to send email here 
    rescue StandardError => e 
    // notify for other failures 
    end 
end 

PS: этот процесс запустить отдельностоящий дино на Heroku, как - Heroku перспективе: имя-рейка отдельностоящий --app = приложение имя

+0

Можете ли вы добавить трассировку стека? –

+0

Пожалуйста, смотрите оригинальное сообщение, я обновил это. –

ответ

1

Вы всегда можете использовать Signal.trap чтобы поймать вещи:

Signal.trap('HUP') do 
    send_panic_email! 
end 

Старайтесь не делать ничего слишком напряженное, когда спасая сигналы, существуют ограничения на то, что вы можете сделать, и вы можете получить ошибки, если вы нарушите эти сопзЬ raints. Я думаю, что ограничения зависят от сигнала и вашей ОС.

+0

код выглядит так: –

+0

Игнорируйте предыдущий комментарий, код выглядит так: задача: generate_best_bets_for_all_users сделать начать конец –

+0

Игнорировать мои предыдущие комментарии, я попал ввести по ошибке. У меня есть исходный вопрос обновления с образцом кода и местом, где я хочу отправить панику электронной почты –

 Смежные вопросы

  • Нет связанных вопросов^_^