2013-09-28 58 views
1

任何人都可以给我一个提示如何设置在Amazon EC2(Ubuntu)上运行的Rails应用程序的CRON作业?如何在Amazon EC2上为Rails应用运行CRON作业?

试图找到一些教程或提示如何使它工作,但还是没有成功。 谢谢

+0

“问题,要求我们建议或找到一个工具,库或喜爱的异地资源是题外话堆栈溢出,因为他们往往以吸引自以为是的答案和垃圾邮件相反,[描述问题(HTTP:// meta.stackexchange.com/q/139399/)以及到目前为止解决它的过程。“那么,你通过什么搜索了,你做了什么来解决它? –

回答

1

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

rails runner 'User.deliver_reminder_emails!' 

的宝石时甚至可以做票友的东西:https://github.com/javan/whenever

0

你应该看看rake任务。检查this,thisthis

运行它们很简单,只要

rake foo:bar 

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

0

这个工作证明是相当棘手的对我来说,作为ELB-EC2实例试图运行cron作业为根,这似乎导致不同的权限,捆绑等

这是有点哈克,但这个工作:

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\"" 

基本上,苏到通常运行轨道,并明确规定了束的路径中的用户。 。