如果我的音乐被删除,我试图跳过PaperClip
进程。
基本上当我上传音乐时,如果出现问题,我想要销毁这个上传文件的每一个部分。此操作被ffmpeg
延迟并完成。另一个任务是延迟将附加图片添加到我的音乐中。
不幸的是,当我销毁不良音乐时,PaperClip
进程(附上图片)已被推迟。这意味着当流程开始时,源不再存在。
这会阻止我delayed_jobs
,我必须手动销毁它。
我使用Delayed_paperclip来创建这些延迟的工作。
如何在处理之前检查源是否存在?
答案 0 :(得分:0)
您正在处理的问题称为race condition
:https://en.wikipedia.org/wiki/Race_condition
假设您不喜欢以下内容: @my_instance.delay.method
您可能希望将附加图像的对象的ID传递给perform
方法
def perform(obj_id)
begin
MyObj.find(obj_id)
rescue
# => do your stuff here
ensure
# => ensure your stuff here
end
end
示例:https://github.com/collectiveidea/delayed_job/#custom-jobs