这个'随时'的任务不起作用,因为找不到表。但是我可以手动触发该方法。我错过了什么?

时间:2012-04-20 11:40:29

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 gem whenever

Raisl 3.1 +每当宝石。我每周都安排了两份工作。但是它们不起作用,“找不到事件表”......似乎我无法发现问题。

配置/ schulde.rb

 every 1.hour do
  runner "Alarm.proba"
 end

 every 1.day, :at=> '4:05 am' do
  runner "Alarm.proba2"
 end

警报模型

def self.proba
  @event = Event.find(31)
  @user =User.find(12)
  EventNotifier.alarm(@event, @user).deliver
end

def self.proba2
  @event = Event.find(30)
  @user =User.find(13)
  EventNotifier.alarm(@event, @user).deliver
end

$ crontab -l(看起来有点奇怪)

 # Begin Whenever generated tasks for: quasi
 5 4 * * * /bin/bash -l -c 'cd /Users/sergioabendivar/railsProjects/Tutos/quasi && script/rails runner -e production '\''Alarm.proba2'\'''

 # End Whenever generated tasks for: quasi

 # Begin Whenever generated tasks for: /Users/sergioabendivar/railsProjects/Tutos/quasi/config /schedule.rb
 0 * * * * /bin/bash -l -c 'cd /Users/sergioabendivar/railsProjects/Tutos/quasi && script/rails runner -e production '\''Alarm.proba'\'''

  5 4 * * * /bin/bash -l -c 'cd /Users/sergioabendivar/railsProjects/Tutos/quasi && script/rails runner -e production '\''Alarm.proba2'\'''

  # End Whenever generated tasks for: /Users/sergioabendivar/railsProjects/Tutos/quasi/config/schedule.rb

现在我的控制台说“你有电子邮件”。这封电子邮件基本上是一个错误......

From: sergioabendivar@n3kiMac.local (Cron Daemon)
To: sergioabendivar@n3kiMac.local
Subject: Cron <sergioabendivar@n3kiMac> /bin/bash -l -c 'cd /Users/sergioabendivar/railsProjects    /Tutos/quasi && script/rails runner -e production '\''Alarm.proba'\'''
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=sergioabendivar>
X-Cron-Env: <USER=sergioabendivar>
X-Cron-Env: <HOME=/Users/sergioabendivar>
Date: Fri, 20 Apr 2012 12:00:06 +0100 (BST)

/Users/sergioabendivar/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/railties-3.1.3/lib/rails/commands/runner.rb:49:in `eval': Could not find table 'events' (ActiveRecord::StatementInvalid)
    from /Users/sergioabendivar/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/activerecord-3.1.3/lib/active_record/connection_adapters/sqlite_adapter.rb:322:in `columns'
    from /Users/sergioabendivar/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/activerecord-3.1.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:95:in `block (2 levels) in initialize'

它说无法找到表事件。但是,如果我从heroku控制台中解雇了该事件,那么它可以工作。

>> Alarm.proba
=> #<Mail::Message:45348860, Multipart: false, Headers: <Date: Fri, 20 Apr 2012 04:36:38 -0700>, <From: "Event Alarm | HiKultura"<info@hikultura.com>>, <To: sabendivar@gmail.com>, <Message-ID: <4f914a463450e_153cac822765@7ff08b40-a6db-4770-909a-661916b0f589.mail>>, <Subject: "sabendivar" One of you alarms just went off>, <Mime-Version: 1.0>, <Content-Type: text/plain>, <Content-Transfer-Encoding: 7bit>>

知道为什么吗?我确信我错过了一些愚蠢的事情。

0 个答案:

没有答案