- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我在 Heroku 上找到 Appoxy SimpleWorker 时,我正要开始在我的应用程序上启动并运行延迟作业。
Appoxy 说它是大规模并行的,它可以上下扩展工作人员以最大限度地降低成本。但是,在我看来,使用 HireFire,delayed_job 也是如此。这是我的问题:您会选择哪个:delayed_job + HireFire 或 SimpleWorker? (为什么?)
https://github.com/tobi/delayed_job
http://hirefireapp.com/
http://addons.heroku.com/simple_worker
我的应用程序目前很小 - 音量很低,并且应用程序的数量在很长一段时间内不应该特别多。
还有什么地方可以期望直接从这两种服务的创始人那里得到答复?谢谢迈克尔和特拉维斯!
最佳答案
嗨(这是 HireFire 的作者)
我将尝试提供一些有关服务之间差异的信息。不确定它是否对您的决定有很大帮助,但至少它是一些东西!
两种解决方案都采用不同的方法。 HireFire 仅在必要时扩展您的 Heroku 网络和工作人员测功机。您无需更改现有代码库中的任何内容,只需照常使用延迟作业。您不必为单独的环境/平台发送/编写代码,因为它在部署时在 Heroku 平台上编译为 slug,当新的 web 或 worker dyno 启动时,slug 会立即使用并运行(包含您的所有ENV 变量/设置。
与 SimpleWorker 相比,HireFire 的缺点是 HireFire 是 Heroku 特有的。因此,如果您曾经从 Heroku 切换到例如 EngineYard 或 VPS/Dedicated 盒子,那么 HireFire 将无法工作,但 SimpleWorker 会因为它没有严格绑定(bind)到 Heroku。虽然,在非 PaaS 平台上托管可能非常便宜(相比之下),因此不一定需要或根本不需要自动缩放。
在开发 HireFire 之前,我一直是 SimpleWorker 的客户,我个人不喜欢的是,我必须将部分代码库推送到 SimpleWorker,并加载到我的 Rails 环境中,从他们的服务器位置重新连接到数据库,然后每次我想将工作发送到云时也会做 API 请求(?)(尽管现在可能已经改变了,所以我鼓励你自己检查一下,也许这不是什么大问题对你来说是一个问题,对我来说也是如此)。对我来说,每次我想添加新的作业类并且必须将所有单独的代码从我的应用程序和我的 gems 加载到作业类文件本身时,这简直是太多的麻烦/试验和错误,而运行 heroku ps:workers 1
或heroku ps:scale worker=2
将立即启动一两个工作人员并开始处理对我的代码库的零修改,这与我在本地运行它时完全相同,因为我的整个应用程序已经在 Heroku 上编译为一个 slug 它只是使用它,包括我的 ENV变量和其他设置/插件,它快速旋转。
使用 HireFire,您只需将 the hirefireapp gem 添加到您的 Gemfile,将您的 Heroku 帐户/应用程序添加到 HireFire Web 界面,自定义您的扩展需求,将您的应用程序部署到 Heroku,仅此而已。您的应用程序将被持续监控和管理/调整(按分钟或更短时间)。
HireFire 没有带有工作表及其状态(运行/完成/失败/等)的光滑界面(当然,它确实概述了每个应用程序的当前 web/worker dyno 数量和排队工作,并且可定制的缩放设置),尽管提供此类功能确实是工作库的工作。据我所知,Delayed Job 有一个或两个你可以使用的小管理界面(开源),它们与 HireFire 无关。因为 SimpleWorker 它既是一个托管服务,又是一个工作库,它们还为您提供了一个 Web 界面。
HireFire 还能够扩展您的网络测功机,而不仅仅是您的工作人员测功机。
两种服务都能够并行处理大量工作,因为据我所知,Heroku 和 SimpleWorker 都按比例分配到第二个。因此,无论您是在 6 秒内旋转 10 个 worker 测功机,还是在 60 秒内旋转 1 个,都不会(或几乎没有)成本。
我自己发布了 HireFire 之后就没有使用过 SimpleWorker,那是很久以前的事了,所以我不确定 SimpleWorker 这些天还提供了什么,或者他们是否从那时起简化了流程,所以我不确定我上面的陈述是否此时仍然有效。
希望这可以帮助!
关于ruby-on-rails - Delayed_job 与 Appoxy SimpleWorker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7384765/
遇到这个错误。 pid-file for killed process 8600 found (C:/cyncabc/tmp/pids/delayed_job.pid), deleting.
当我部署到 pre服务器一切正常。但是如果我尝试部署到 staging服务器我收到此错误: bundler: command not found: bin/delayed_job 文件 - confi
我做了 rake db:create 然后 rake db:migrate 遇到了这个错误。 rake aborted! PGError: ERROR: relation "delayed_jobs
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
我正在使用 delayed_job 并转移到一个更强大的新服务器。所以现在我想运行并行作业,就像现在一样I have the POWER! ,但对 delayed_job 是否可以运行多个并行队列感到
因此,我正在使用“延迟的作业”,并且试图弄清楚如何使我的所有邮件都被延迟。现在,我已经将handle_asynchronously放在所有的 Action 邮件程序方法中……但是我认为这行不通。 de
我正在寻找调试延迟作业类。首先,我添加了 config/initializers/delayed_job_config 以将我的日志记录移动到我的 log/production.rb 文件中。 Del
我已经有一段时间没有问题地使用 delay_job 了;主要用于排队 ActionMailer 调用(Notifier.send_later ...)。最近,它从同一工作中随机发送多封电子邮件。我将一
我在 site5.com 共享主机上使用 delayed_job(尝试了 tobi 和 collective_idea),乘客作为 rails 环境。我设法完成了工作。但是,该插件似乎在首次运行后忽略
我有 ROR 应用程序和 1 个 delay_job 进程使用 rake job:work 运行。ROR 应用在多个队列中添加 Job。 假设我们有队列 1 和队列 2。 我的问题是队列 1 中的任务
我之前设置了一个邮件程序,可以向我的所有用户帐户发送电子邮件。但现在我正在尝试调试它。所以我把它彻底清除了,它仍然给我发邮件。 我完全没有理由或理解为什么。疯狂! :D 控制者 def org_bla
我在重新启动 delayed_job 时遇到问题。 当我登录并运行 rake delayed_job RAILS_ENV=production 一切正常,所有作业都已处理,但是如果运行 RAILS_E
在安装 delayed_job gem 并在我的本地机器上成功运行后,我无法让它在我的专用服务器上运行。 我在 Gemfile 中包含了 gem“daemons”,生成了事件记录表,并成功安装/迁移了
我有一个带插件的 Rails 应用 https://github.com/tobi/delayed_job 有时作业的执行顺序与创建顺序不同。 我希望作业按照创建时的顺序执行,因为在某些情况下,要执行
我将一个作业添加到延迟的作业中,但是当我运行它时出现 NoMethod 错误 Delayed::Job.last => #Delayed::Backend::MongoMapper::Job _id:
我正在使用 delayed_job Ruby gem 就好了。 它默认为单个 worker,所以我已经完成了: script/delayed_job stop script/delayed_job -
使用 delayed_job gem,我怎样才能只停止一个进程而不停止所有工作进程? 例如: rake jobs:work 启动 worker process1 = SomeClass.enqueue
我希望我有更多信息可以放在这里,但我只是在撒网,希望有人对我可以尝试什么或寻找什么方向有一些想法。基本上我有一个使用延迟作业的 Rails 应用程序。它将需要大约 10 或 15 分钟的进程卸载到后台
我们在项目中使用 delayed_job 的命名队列。有没有办法将每个队列记录到单独的日志文件中? DelayedJob 在这样的部署脚本中启动: run "cd #{current_path};RA
我已经使用 delayed_job 在我的 Rails 应用程序中实现了长时间运行的任务连同 delayed_job_web .我的 delayed_job 配置指示作业尝试一次,并保留失败: con
我是一名优秀的程序员,十分优秀!