【发布时间】:2011-06-26 19:36:59
【问题描述】:
如果我将大于 5mb 的视频文件保存到服务器上。我应该创建一个后台作业来保存这个文件吗?
这应该怎么做?我的视频模型有标题、描述和附件列/字段。所有字段都是必需的。
在 def create 中,我应该执行 "if Resque.enqueue(Save, @video)" 之类的操作,而不是执行 "if @video.save"?
我不确定如何做到这一点,因为将参数传递给 Resque.enqueue() 会将其转换为哈希。其次,使用 ""if Resque.enqueue(Save, @video)"",期望 true 或 false。然而,Resque.enqueue 不能返回任何东西。还是我错了?
按钮线是。使用 resque + redis 的后台工作人员保存记录的适当方法是什么?
理想情况下,我认为它应该类似于:
def create
@video = Video.new(params[:video])
respond_to do |format|
if Resque.enqueue(Save)
...
end
end
module Save
@queue = :save
def self.perform
video = Video.new(params[:video])
video.save
return true
end
end
你有什么想法?
【问题讨论】:
标签: ruby-on-rails backgroundworker redis resque