Rails - порождает новый экземпляр класса для карантинного отключения обратных вызовов - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть приложение на Rails 5, в котором я хочу запустить пакетное задание, и только для объема этого задания я хочу отключить обратные вызовы. Это задание может занять до 30 минут, и, пока оно выполняется, если на сервер поступают другие запросы, я хочу, чтобы выполнялись обратные вызовы. Есть ли способ охватить новый экземпляр модели для этой цели? Пример:

class Model
    before_save :do_something
...
end

def batch
    Thread.new do 
        # was hoping that instantiating a new thread would make only THIS
        # instance of the Model class disable its callbacks, but I was
        # wrong
        Model.skip_callback(:save, :before, :do_something)
        # now do your batch work
    end
end

Есть ли в Rails способ межсетевого экрана для пространства имен или чего-то такого, чтобы я мог отключить обратные вызовы внутри небольшого пузыря, но когда другие вещи вызывают этот класс модели, они работают?

Спасибо, Кевин

...