Ruby on rails 如何在AmazonEC2上为Rails应用程序运行CRON作业?
谁能告诉我如何为运行在AmazonEC2(Ubuntu)上的Rails应用程序设置CRON作业 试图找到一些教程或技巧如何使它工作,但仍然没有任何成功。Ruby on rails 如何在AmazonEC2上为Rails应用程序运行CRON作业?,ruby-on-rails,ruby,ubuntu,amazon-ec2,cron,Ruby On Rails,Ruby,Ubuntu,Amazon Ec2,Cron,谁能告诉我如何为运行在AmazonEC2(Ubuntu)上的Rails应用程序设置CRON作业 试图找到一些教程或技巧如何使它工作,但仍然没有任何成功。 谢谢尝试创建一个模型方法,为您的crondjob执行任务。您可以使用rails runner执行脚本 rails runner 'User.deliver_reminder_emails!' 无论何时,gem都可以做更有趣的事情:尝试创建一个模型方法,为crondjob执行任务。您可以使用rails runner执行脚本 rails runn
谢谢尝试创建一个模型方法,为您的crondjob执行任务。您可以使用rails runner执行脚本
rails runner 'User.deliver_reminder_emails!'
无论何时,gem都可以做更有趣的事情:尝试创建一个模型方法,为crondjob执行任务。您可以使用rails runner执行脚本
rails runner 'User.deliver_reminder_emails!'
无论何时,gem都可以做一些更有趣的事情:你应该看看
rake
任务。检查,然后
运行它们非常简单
rake foo:bar
您可以在
crontab
中安排相同的时间;如果您正在使用rvm
和bundler
本地管理gems,您可能需要设置正确的PATH
变量。您应该看看rake
任务。检查,然后
运行它们非常简单
rake foo:bar
您可以在
crontab
中安排相同的时间;如果您使用rvm
和bundler
本地管理gems,您可能需要设置正确的PATH
变量,这对我来说相当棘手,因为ELB-EC2实例试图以root身份运行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\""
基本上,su会发送给通常运行rails的用户,并显式地说明bundle的路径。这对我来说相当棘手,因为ELB-EC2实例试图以root用户身份运行cron作业,这似乎会导致一组不同的权限、bundle等 这有点老套,但这起作用了:
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的用户发出警告,并明确说明捆绑的路径。“要求我们推荐或查找工具、库或喜爱的非现场资源的问题对于堆栈溢出来说是无关紧要的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,到目前为止,我们采取了哪些措施来解决它。”因此,你搜索了什么?你做了什么来解决它?“要求我们推荐或查找工具、库或喜爱的非网站资源的问题对于堆栈溢出来说是离题的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,到目前为止,你做了什么来解决它。”因此,你搜索了什么?你做了什么来解决它?