繁体   English   中英

如何在Amazon EC2上为Rails应用程序运行CRON作业?

[英]How do I run CRON jobs for a Rails app on Amazon EC2?

谁能给我一个提示,如何为在Amazon EC2(Ubuntu)上运行的Rails应用设置CRON作业?

试图找到一些使它工作的教程或技巧,但仍然没有成功。 谢谢

尝试创建一个模型方法来执行您的crondjob的任务。 您可以使用railsRunner执行脚本。

rails runner 'User.deliver_reminder_emails!'

每当gem可以做更出色的事情时: https : //github.com/javan/whenever

您应该看一下rake任务。 检查这个这个这个

运行它们就像

rake foo:bar

您可以在crontab安排相同的时间; 如果要使用rvmbundler在本地管理gem,则可能需要设置正确的PATH变量。

这对我来说相当棘手,因为ELB-EC2实例试图以root身份运行cron作业,这似乎导致一组不同的权限,捆绑等。

这有点hacky,但这行得通:

 sudo su ec2-user bin/bash -lc "cd /var/app/current && /opt/rubies/ruby-2.1.8/bin/bundle exec/bundle exec rails runner -e your_env \"Model.do_something\""

基本上,su是通常运行rails的用户,并显式说明bundle的路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM