ruby-on-rails – 如何监控heroku调度程序运行的重复rake任务?

ruby-on-rails – 如何监控heroku调度程序运行的重复rake任务?,第1张

概述我刚拿到了上个月的heroku账单,而预定的佣金任务是一个相对沉重的负担.我们在开发过程中已经很早了,所以我们刚开发了一些rake任务来完成最近的工作,并且他们的优化并没有太多关注. 现在我们想要改善他们的性能和他们的处理时间.我们使用New Relic来监控webapp性能,但显然默认会忽略这种类型的rake任务,并且不清楚如何覆盖它. 有人有类似的问题吗?如何实时跟踪计划任务以监控性能,优化并 我刚拿到了上个月的heroku账单,而预定的佣金任务是一个相对沉重的负担.我们在开发过程中已经很早了,所以我们刚开发了一些rake任务来完成最近的工作,并且他们的优化并没有太多关注.

现在我们想要改善他们的性能和他们的处理时间.我们使用New Relic来监控webapp性能,但显然默认会忽略这种类型的rake任务,并且不清楚如何覆盖它.

有人有类似的问题吗?如何实时跟踪计划任务以监控性能,优化并且不会产生惊喜?

解决方法 虽然你无法真正监控rake任务,但你可以做一些小事.一个是使用日志记录.将任务的输出开始和结束时间输出到日志,然后您可以看到持续时间发生了什么.如果你把它与Papertrail插件这样的东西结合起来,那么你可以稍后再做一些询问.

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

如果您需要按计划运行工作,可以使用一些选项.首先是Heroku调度程序,这是非常好的,但不保证执行会发生.通常你会用它来启动一个rake任务,它会在任务期间产生一次性dyno – 因此你需要确保在开发过程中这些任务尽可能高效.

或者,如果您正在寻找需要更多控制或使用时钟过程的工作.基本上这是一个全天候运行的dyno,除了以预设的时间间隔和时间启动其他工作之外什么都不做.这通常是使用发条宝石完成的.这种方法的缺点是您需要一直为时钟进程付费.

第三种方法,可能有效的方法是延迟作业,使用runat选项,允许您将作业排队以便将来运行(并且作业可以自行重新排队).这有一些问题,因为失败可以扼杀整个链,你需要一个全职工作者来运行它们.

因此,为了最大限度地减少您的账单,请确保您的佣金任务具有高效性和可靠性,然后选择适合您的计划选项.如果您正在查看计划和用户创建的事件,delayed_job可能是最佳选择.如果您正在查看定期运行的一些任务,请转到调度程序.如果您正在寻找定期运行大量时间关键工作,请使用发条.

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

总结

以上是内存溢出为你收集整理的ruby-on-rails – 如何监控heroku调度程序运行的重复rake任务?全部内容,希望文章能够帮你解决ruby-on-rails – 如何监控heroku调度程序运行的重复rake任务?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1282911.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存