0

我正在使用 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)如何在亚马逊 ec2 上设置新机器以获得 rails repo?
2)如何通过连接到heroku中的app mongo数据库来运行delayed_jobs。?

4

1 回答 1

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)

蒙哥

如果您打算将 delay_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

于 2013-08-13T04:53:52.843 回答