1

我有延迟工作自定义作业:为什么我的自定义延迟作业在本地和Heroku上的初始化方式不同?

class ImportJob < Struct.new(:my_datasource) 
include Apartment::Delayed::Job::Hooks 

def initialize(my_datasource) 
    @database = Apartment::Database.current_database 
    @my_datasource = my_datasource 
end 

def perform 
    ... 
end 
end 

这个工作在发展很好,但不是在Heroku。

调试时,我发现,在发展中的变量databasemy_datasource进行正确设置,但在生产中(在Heroku上),我有@database@my_datasource可用。

我不明白为什么同一个类不会在两个环境中初始化相同的变量。

任何人都可以摆脱一些光线,告诉我,如果我做错了什么?

+0

你有在Heroku上运行的工人吗?您需要工作人员才能运行后台进程。 – Arjan 2013-03-13 12:52:15

+0

是的,我确实有一名工人在跑步 – Pierre 2013-03-13 12:58:38

回答

0

不知道这是否是正确的解决方案,但我发现Heroku在使用1.9.3时使用了Ruby 1.9.2。

在Heroku上升级到1.9.3解决了我的问题。