Проблема с рельсами / пассажиром в производственном режиме с методами класса
Итак, я обошёл решение ... Я попытаюсь вызвать экземпляр метод и избегайте вызова class метод.
Давайте посмотрим пример;при условии, что мне нужно вызвать следующий метод в фоновом режиме ..
UserMailer.deliver_newsletter(email)
Затем я создал новый класс DelayClassMethod
class DelayClassMethod
def initialize(receiver_name, method_name, options={})
@receiver_name = receiver_name
@method_name = method_name
@parameters = options[:params] || []
end
def perform
eval(@receiver_name).send(@method_name, *@parameters)
end
end
и теперь могу запускать метод в фоновом режиме с помощью
DelayClassMethod.new("UserMailer", "deliver_newsletter", :params=>[email]).delay
Итак, я запускаю метод instance теперь в фоновом режиме, который будет запускать метод class .
Другой пример ..
Предположим, я хочу запустить
Product.list_all_by_user_and_category(user, category).delay
Тогда его можно запустить с помощью
DelayClassMethod.new("Product", "list_all_by_user_and_category", :params => [user, category]).delay