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>>
知道为什么吗?我确信我错过了一些愚蠢的事情。