首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何监控heroku scheduler运行的循环rake任务?

如何监控heroku scheduler运行的循环rake任务?
EN

Stack Overflow用户
提问于 2012-02-04 21:57:53
回答 5查看 2.8K关注 0票数 4

我刚拿到上个月的heroku账单,计划中的rake任务是一个相对沉重的负担。我们在开发过程中还处于早期阶段,所以我们只是开发了一些rake任务来完成最近的工作,在他们的优化中没有太多的关注。

现在我们想要提高他们的性能和heroku的处理时间。我们使用New Relic来监控webapp的性能,但显然这种类型的rake任务在默认情况下被忽略了,并且不清楚如何覆盖它。

有谁有类似的问题吗?如何接近实时地跟踪计划任务,以监控性能、优化,并且不会收到意外账单?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-02-05 21:11:19

虽然你不能很好地监控rake任务,但你可以做一些小事情。一个是日志的使用。将任务的开始和结束时间输出到日志中,然后您可以看到持续时间内发生了什么。如果你把这个和文件跟踪插件结合起来,你可以在以后做额外的审问。

至于运行作业本身,有几种方法可以运行后台进程,这取决于它们的运行方式:

如果您需要按计划运行作业,有几个选项可用。首先是Heroku调度器,它非常好,但不能保证会执行。通常,你会用它来启动一个rake任务,这将在任务的持续时间内带来一个一次性的dyno -因此,你需要在开发中确保这些任务尽可能的高效。

或者,如果您正在查看需要更多控制或使用时钟进程的作业。本质上,这是一个24/7全天候运行的dyno,除了以预设的时间间隔和时间启动其他作业外,什么也不做。这通常是使用钟表宝石来完成的。这种方法的缺点是,您需要一直为时钟进程付费。

第三种方法是延迟作业,它的runat选项允许您对将来要运行的作业进行排队(并且作业本身可以重新排队)。这样做有一些问题,因为失败可能会杀死整个链,并且您需要一个全职工作人员来处理所有这些问题。

因此,为了最大限度地减少开销,请确保rake任务的性能和可靠性一样高,然后选择适合您的调度选项。如果您正在查看日程表以及用户创建的事件,delayed_job可能是最佳选择。如果您正在查看一些定期运行的任务,那么可以使用scheduler。如果你想定期运行大量的时间关键型作业,那就使用时钟工作吧。

无论哪种方式,您都应该能够根据您的方法将相当数量的处理限制在一个或两个进程中。

票数 7
EN

Stack Overflow用户

发布于 2021-11-25 20:54:07

我知道这个问题已经有10年的历史了,但是有一种新的方法!

现在,您可以使用One-off Dyno Metrics监视Heroku Scheduler作业。这个Heroku插件收集在您的Heroku应用程序中运行的所有分离的一次性动态指标。它被创建为Heroku的应用程序度量的扩展,并且开箱即用。

票数 1
EN

Stack Overflow用户

发布于 2012-02-05 22:39:06

当你在heroku cedar上运行时,有一种方法可以让你的员工获得一个免费的设置。这不是对您的监视问题的答案,但无论如何它可能会很有趣:http://blog.nofail.de/2011/07/heroku-cedar-background-jobs-for-free/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9141393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档