访问长时间运行的进程状态

时间:2015-10-04 10:05:59

标签: ruby-on-rails ruby gem

我有一个本地gem,我从主应用程序移出了一些功能。它主要用于准备导入数据库的数据

#importer gem's public instance method "import"
Importer::Processor.new('data.xls').prepare_for_import

此过程可能会长时间运行,具体取决于data.xls尺寸

这是我在模型中使用它的方式

#ProductImport model
def importing_data
  Importer::Processor.new(self.data_file).prepare_for_import
end

def insert_data_to_db
  self.class.import importing_data
end

现在我想从准备过程中“接收”信息的方式,并将其写入我的ProductImport实例的数据库......

我不想直接在gem中写入当前产品导入行,因为我想保留gem独立

我试图在@@status Importer::Processor方法中设置类变量(prepare_for_import) - 没有运气,如果我尝试用这样的异步过程读取它,它会保持初始状态

Importer::Processor.class_variable_get(:@@status)

还尝试了全局变量$status甚至动态常量设置(抱歉这个=))

Importer::Processor.const_set('STATUS', '1234 rows processed')

没有运气 - 太

你能提出我可以在gem的实例方法中访问长时间运行进程的当前状态的方法吗?

谢谢

0 个答案:

没有答案