【问题标题】:How to setup delayed jobs with multi schema based application Rails.?如何使用基于多模式的应用程序 Rails 设置延迟作业。?
【发布时间】:2016-04-03 05:49:22
【问题描述】:

你们能否指导我如何允许 rake jobs:work 在开发和生产环境中为多个模式工作。提前致谢。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 postgresql schema delayed-job


    【解决方案1】:

    您可以在 Job 类中设置您的 schema

    假设你有 CustomJob 类。在此处设置您的schema

    class CustomJob
    
      attr_accessor :object, :method_name, :args, :schema
    
      def initialize object, method_name, args
        @object = object
        @method_name = method_name
        @args = args
        @schema = ActiveRecord::Base.connection.schema_search_path
      end
    
      def perform
        object.send(method_name, *args) if object
      end
    
      def before(job)
        ActiveRecord::Base.connection.schema_search_path = schema
      end
    
      def after(job)
        ActiveRecord::Base.connection.schema_search_path = 'public'
      end
    
      def max_attempts
        return 2
      end
    
    end
    

    initializeDelayed::Job上面的Job

    Delayed::Job.enqueue(CustomJob.new(object, method, args), queue: <queue>)
    

    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-17
      • 1970-01-01
      • 2011-10-22
      相关资源
      最近更新 更多