没有rails的resque-scheduler

时间:2013-05-23 11:53:11

标签: ruby redis resque

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

# 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')

但我得到了 undefined方法`days'为5:Fixnum

我找不到没有导轨的例子,任何想法?

1 个答案:

答案 0 :(得分: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

用红宝石2-0-0完成的例子。