微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Delayed_job:定义时间

如何解决Delayed_job:定义时间

| 因此,我试图弄清楚如何做到这一点。为了使示例简单,我假设有一个对象“ 0”,在其中定义两次,我想向会议中的人们发送两封不同的电子邮件。 在我的“ 0”模型中,我想定义两个方法(而不是拥有自己的延迟作业类),但是我需要让那些方法查看对象内定义的时间,以便知道何时发送。
def send_first
  ... do stuff
end
handle_asynchronously :send_first,:run_at => Proc.new { send_first_time }
问题在于,根据文档,
send_first_time
必须是一个方法,并希望它是一个实例方法,以便我可以看到用户定义的时间。 我该怎么做呢?还是只需要创建两个单独的Delayed_job类并执行以下操作:
Delayed::Job.enqueue(SendFirstJob.new,:run_at => send_first_time)

解决方法

我相信handle_asynchronously将该对象的属性传递给Procs,因此:
handle_asynchronously :send_first,:run_at => Proc.new { |obj| obj.send_first_time }
您可以随时滚动自己的异步包装器
def send_first_async(*args)
  delay(:run_at => send_first_time).send_first(*args)
end
,我最终使用了第二种方法。尽管它不像我希望的那样对时间敏感。 如果有人对如何使ѭ3成为基于用户输入的变量有一个答案,我很乐意接受它作为正确的答案。谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。