1

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

gem "rufus-scheduler "

我也安装了 gem

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        

对这个错误有什么想法吗?

谢谢

4

3 回答 3

3

你写在你的 Gemfile

gem "rufus-scheduler "

不应该

gem "rufus-scheduler"

反而?

添加该行后,您必须运行

bundle install

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

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

于 2014-02-28T22:33:19.540 回答
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

于 2014-02-28T13:49:01.070 回答
0
sudo gem install rufus-scheduler --source http://gemcutter.org

通过“gem”命令安装 ruby​​gems,该命令通常指向“系统”Ruby,通常又不是 JRuby。

你可能会做

jruby -S gem install rufus-scheduler

在 JRuby 加载路径中安装 gem。

于 2014-02-28T21:55:43.947 回答