【问题标题】:Getting started with delayed jobs开始处理延迟的工作
【发布时间】:2013-08-13 04:17:29
【问题描述】:

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

【问题讨论】:

  • 你应该研究你不知道的东西。检查文档,尝试一些事情,然后再回来解决具体问题。
  • 抱歉画了,但实际上我早就想通了。我刚刚在 heroku 上使用了延迟 gem,并在 amazon ec2 上开始了 hohup rake 工作。

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


【解决方案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

【讨论】:

  • 我正在使用两台服务器 heroku 和 amazon ec2。如何将 mongo 数据库连接到 heroku 上的亚马逊网络服务器。
  • 您在提出上述问题时需要更加清楚。概述您的问题以及您迄今为止所做的尝试。
猜你喜欢
  • 1970-01-01
  • 2012-04-16
  • 1970-01-01
  • 1970-01-01
  • 2011-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多