我的模特:
class Uzer < ActiveRecord::Base
establish_connection :uzer
set_table_name 'managers'
def self.synchronize_emails
get_emails_from_uzer = Uzer.find(:all)
get_emails_from_flower = Respondent.find(:all)
get_emails_from_uzer.each do |e|
Respondent.create(:email => e.email, :user_id => 6, :respondent_group_id => e.organisational_id)
end
end
end
一切都很完美,但是......
我想每小时执行def self.synchronize_emails
以从其他数据库接收电子邮件并插入我的数据库。
我试着用这个 - &gt; https://github.com/javan/whenever
我安装了gem,创建了config / schedule.rb并写道:
every 2.minutes do
runner "Mossad.synchronize_emails"
end
(仅用于测试是否有效)
然而,没有任何反应。有什么想法/建议吗?我想要克朗!:(
谢谢!
更新
我在控制台写道:whenever --update-crontab store
# Begin Whenever generated tasks for: store
0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58 * * * * /bin/bash -l -c 'cd /home/ee-vzaharov/Projects/AptanaRadRails/survey && script/runner -e production '\''Mossad.synchronize_emails'\'''
# End Whenever generated tasks for: store
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
Type :quit<Enter> to exit Vim
答案 0 :(得分:2)
使用cron
,您可以安排以下cd /path/to/web/app && /path/to/rake -s name_of_task
随时运行。我没有使用上面提到的宝石,cron
似乎没问题。
使用crontab -e
编辑当前用户的crontab。如果需要,Wikipedia有一篇关于如何使用它的文章。
答案 1 :(得分:0)
在crontab中创建条目时,请与crontab -e
核对。如果没有,请运行命令:
cd /path/to/file
whenever --update-crontab store
插件将更新crontab(再次使用crontab -e
)