我对 Ruby on Rails 非常陌生,并用它构建了一个小型 DemoApp。这个应用程序收集一些网络数据并将其存储在数据库中。此任务每分钟随时完成。我在 Ubuntu 上开发并测试了它,它运行得非常好。
现在,我想将此应用程序部署到我的 Raspberry Pi。我在上面安装了 rvm、ruby、rails 等并启动了 rails 服务器。奇怪的是,收集和存储网络数据的后台工作似乎不起作用。所以我自己执行了它并得到了这个:
script/rails runner -e development 'LogEntry.updateRecords'
/home/user/.rvm/gems/ruby1.9.3-p374/gems/sqlite3-1.3.7/lib/sqlite3/sqlite3_native.so: [BUG] Segmentation fault
ruby 1.8.7 (2012-02-08 patchlevel 358) [arm-linux-eabihf]
当我使用“rails 控制台”时,LogEntry.update 再次完美运行。
时间表.rb:
every 1.minute do
runner "LogEntry.updateRecords", :environment => :development
end
结果 crontab 条目:
# Begin Whenever generated tasks for: store
PATH=/home/user/.rvm/gems/ruby-1.9.3-p374/bin:/home/user/.rvm/gems/ruby-1.9.3-p374@global/bin:/home/user/.rvm/rubies/ruby-1.9.3-p374/bin:/home/user/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
* * * * * /bin/bash -l -c 'cd /home/user/WhoIsOnline/AWE13-Exercise-1 && script/rails runner -e development '\''LogEntry.updateRecords'\'''
# End Whenever generated tasks for: store
红宝石-v
ruby 1.9.3p194 (2012-04-20 revision 35410) [arm-linux-eabihf]
经过大量不同的 rvm 设置和谷歌搜索,我希望你们能帮助我。