您好我正在rails应用程序上构建一个ruby。我想共享一个附件最多只有一个小时,之后必须停用该特定链接。 没有做任何 CRON工作可以实现这个目标吗?
我的要求是用户可以上传附件,他们可以共享加密的URL。该URL的最大有效期为一小时。
我想知道是否可以通过不创建任何 CRON作业来实现?如果是的话请帮助我?
答案 0 :(得分:1)
您可以使用应用程序控制器助手before_filter
class ApplicationController < ActionController::Base
before_filter :check_expire
def check_expire
UrlLink.active.where('expire_time <= ?' Time.now).find_each do |url|
url.deactive!
end if UrlLink.active.any?
end
end
模型
class UrlLink < AB
scope :active, -> { where(active: true) }
def deactive!
update(active: false)
end
end
但如果您有大型数据库,这项工作会很慢。