开始延迟工作

时间:2013-08-13 04:17:29

标签: ruby-on-rails amazon-ec2 delayed-job

我正在使用ROR和mongodb。该应用程序部署在Heroku上。我想在亚马逊ec2上运行几个延迟的工作。为此,我遇到了这些命令

git pull on your repo.
chmod 600 xyz.pem
ssh -i xyz.pem ubuntu@ec2-234-33-37-14.compute-1.amazonaws.com

我和heroku一起工作但没有和ec2一起工作,如果有人可以给我指出任何好的资源或者在亚马逊ec2中开始设置dealyed_job来解释。

我知道的事情:
1)如何在代码中实现延迟作业。

我不知道并怀疑的事情:
1)如何在amazon ec2上设置新机器以获得导轨回收?
2)如何通过连接到heroku中的app mongo数据库来运行delayed_jobs。

1 个答案:

答案 0 :(得分:1)

1)如何设置新机器以获得rails repo?

您可以通过多种方式自动配置新机器。一些流行的方法是Puppet / Chef / SaltStack。

对于非常简单的设置,您可能只想运行脚本。 AWS允许您在启动计算机时提供脚本(通过UserData)。 https://help.ubuntu.com/community/CloudInit

以下是您可能提供给AWS的UserData脚本示例:

#!/bin/sh

set -e -x

apt-get --yes --quiet update
apt-get --yes --quiet install git

git clone https://github.com/user/repo.git /destination/folder

2)如何通过连接app mongo数据库来运行delayed_jobs?

可以在此处找到文档:https://github.com/collectiveidea/delayed_job

延迟工作

在任何对象上调用.delay.method(params),它将在后台处理。

# without delayed_job 
@user.activate!(@device)

# with delayed_job 
@user.delay.activate!(@device)

<强>蒙戈

如果您计划将delayed_job与Mongoid一起使用,请将delayed_job_mongoid添加到您的Gemfile中。

gem 'delayed_job_mongoid'

修改:进一步阅读http://thediscoblog.com/blog/2013/06/10/backgrounding-tasks-in-heroku-with-delayed-job/https://github.com/collectiveidea/delayed_job_mongoid