为了按计划启动delayed_job,您需要具有delayed_job可以调用的带有perform方法的助手类。在调用任何使用它们来创建计划的delayed_jobs的类之前,都需要定义这些类。所有的都很短,在我的情况下有很多。例如:
class AccountUpdateJob < Struct.new(:account_id)
def perform
acct = Account.find(account_id)
acct.api_update
end
end
我在initializers文件夹中一个名为"dj_helper_classes"的文件中执行此操作。这样做对吗?
我把我的保存在lib/jobs中,每个类一个文件。因此,您的示例将在lib/jobs/account_update_job.rb 中
module Jobs
class AccountUpdateJob < Struct.new(:account_id)
def perform
acct = Account.find(account_id)
acct.api_update
end
end
end