2

我正在尝试运行以下代码:

# Resque tasks
require 'resque/tasks'
require 'resque_scheduler/tasks'
namespace :resque do
 task :setup do
  require 'resque'
  require 'resque_scheduler'
  require 'resque/scheduler'

   # you probably already have this somewhere
   Resque.redis = 'localhost:6379'

   Resque.schedule = {}

   require_relative 'app'
 end
end

和 app.rb

require 'resque'
require 'resque_scheduler'
require 'resque/scheduler'

Resque.enqueue_in(5.days, SendFollowUpEmail, 'id')

但是我得到了 5:Fixnum 的未定义方法“天”

我找不到没有导轨的例子,知道吗?

4

1 回答 1

1

时间戳计算语法由active_support包之一提供。

如果你不想要这种依赖,enqueue_in 的第一个参数是你可以手动计算的秒数。例如:

MINUTES=60
HOURS=60*MINUTES
DAYS=24*HOURS

Resque.enqueue_in(5*DAYS, SendFollowUpEmail, 'id')

如果您仍然想使用花哨的时间戳计算语法,那么您需要安装active_support。你仍然可以在不安装 Rails 的情况下做到这一点:

$ gem install active_support
$ irb
irb(main):001:0> require 'active_support/time'
=> true
irb(main):002:0> print 5.days
432000=> nil

使用 ruby​​ 2-0-0 完成的示例。

于 2013-05-25T07:47:54.057 回答