没有这样的文件加载 - rufus-scheduler

时间:2014-02-28 13:25:45

标签: ruby rubygems jruby rufus-scheduler

我正在开发redmine的插件如何每天发送邮件,所以我安装了rufus-scheduler 在我的Gemfile中我添加了这一行

gem "rufus-scheduler "

我还安装了宝石

sudo gem install rufus-scheduler --source http://gemcutter.org

在我的redmine / plugins / latest-issues-redmine-plugin / lib / latest_issues / view_hook_listener.rb中我这样做

class LatestIssuesViewHookListener < Redmine::Hook::ViewListener

    require File.join(File.dirname(__FILE__), '../../app/models/latest_issues_setup')
    require 'net/smtp'
    require 'rubygems'
    require 'rufus-scheduler

def load_issues   
 scheduler = Rufus::Scheduler.start_new   
 scheduler.every '1h' do
send_email "test@test.com", :body => html
  end
end
end        

对此错误的任何想法?

由于

3 个答案:

答案 0 :(得分:3)

你在你的Gemfile中写道

gem "rufus-scheduler "

不应该是

gem "rufus-scheduler"

代替?

添加该行后,您必须运行

bundle install

让Bundler抓取rufus-scheduler gem(并更新Gemfile.lock文件)。

IIRC,在启动Rails应用程序时,Bundler应该已经抱怨没有rufus-scheduler。这应该发生在LoadError之前。那么,你是否正在使用Bundler启动Rails应用程序? (无论如何你怎么开始?)

答案 1 :(得分:0)

尝试

require 'rubygems' # tell ruby that you're using rubygems
require 'rufus-scheduler'

scheduler = Rufus::Scheduler.new # rufus-scheduler 3.0 style

scheduler.in '5s' do
  puts "order ristretto"
end
scheduler.every '10s' do
  puts "I feel like drinking coffee"
end

#scheduler.join

您似乎遵循旧教程。 rufus-scheduler的当前自述文件位于https://github.com/jmettraux/rufus-scheduler

答案 2 :(得分:0)

sudo gem install rufus-scheduler --source http://gemcutter.org

通过“gem”命令安装rubygems,该命令通常指向“系统”Ruby,它通常也不是JRuby。

你可以做

jruby -S gem install rufus-scheduler

在JRuby加载路径中安装gem。