Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在AmazonEC2上为Rails应用程序运行CRON作业?_Ruby On Rails_Ruby_Ubuntu_Amazon Ec2_Cron - Fatal编程技术网

Ruby on rails 如何在AmazonEC2上为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

谁能告诉我如何为运行在AmazonEC2(Ubuntu)上的Rails应用程序设置CRON作业

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

尝试创建一个模型方法,为您的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的用户发出警告,并明确说明捆绑的路径。

“要求我们推荐或查找工具、库或喜爱的非现场资源的问题对于堆栈溢出来说是无关紧要的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,到目前为止,我们采取了哪些措施来解决它。”因此,你搜索了什么?你做了什么来解决它?“要求我们推荐或查找工具、库或喜爱的非网站资源的问题对于堆栈溢出来说是离题的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,到目前为止,你做了什么来解决它。”因此,你搜索了什么?你做了什么来解决它?