【问题标题】:Run Delayed Job at a specific time在特定时间运行延迟作业
【发布时间】:2020-02-04 10:34:14
【问题描述】:

我有一个电子邮件递送作业,我想在用户指定的时间运行它。我有一个 datetime 列 Deliver_at,我应该在该列上发送电子邮件。我正在使用延迟作业来执行后台作业。

延迟作业允许我指定时间差,而不是安排作业的确切时间。

  GiftCardMailerJob.set(wait: delay_by.minutes.from_now).perform_later(go)

有没有办法我直接给出deliver_at时间并在那个时候运行延迟的作业?

如果不是,我怎么能到达时差?

((deliver_at - Time.now) / 60).minutes.from_now

应该是正确的方法吗?

【问题讨论】:

    标签: ruby-on-rails time delayed-job


    【解决方案1】:

    您可以使用delayed_jobs中的enqueue方法

    Delayed::Job.enqueue(GiftCardMailerJob.new, :run_at => deliver_at)
    

    如果您在数据库中看到delayed_jobs 表,则run_at 字段的类型为datetime,您可以为其设置任何datetime 值。

    【讨论】:

      猜你喜欢
      • 2017-02-04
      • 2013-09-08
      • 2012-02-16
      • 1970-01-01
      • 2012-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多