【问题标题】:Heroku Scheduler not creating logHeroku调度程序不创建日志
【发布时间】:2014-12-17 16:33:11
【问题描述】:

我最近设置了调度程序插件并设置了我的 rake 任务“rake cron_jobs:my_task”。

当我用 'heroku run rake cron_jobs:my_task',它工作正常。

调度程序还声称它在它应该运行的时候运行,并计划再次运行,但是没有像https://devcenter.heroku.com/articles/scheduler#inspecting-output 所说的那样与进程关联的日志记录。

'heroku ps' 显示没有预定的测功机,'heroku logs --ps scheduler.1' 没有输出。

我错过了什么?

【问题讨论】:

  • 尝试只运行不带 '.1' 的 heroku logs --ps 调度程序,看看是否有任何输出。
  • 就我而言,我需要将应用程序名称添加到日志命令中:heroku logs --ps scheduler.1 -a myapp。不幸的是,一旦调度器测功机完成执行任务,它就会减速,我认为没有办法检查它的输出。

标签: ruby-on-rails heroku scheduler


【解决方案1】:

其实我自己也在尝试解决这个问题,但在任何地方都没有找到答案,所以如果其他人正在努力解决这个问题:

heroku logs --tail --ps scheduler

--tail 对于保持流式传输日志很重要。

【讨论】:

    【解决方案2】:

    我的最佳猜测:heroku psheroku logs 命令只为您提供当前正在运行的进程/dynos 的状态日志。

    所以在预定的rake 任务完成后,你无法通过命令行访问日志。

    您可以使用logging addons 之一访问您的日志历史记录。他们中的大多数也提供免费套餐。

    它们都基于log drains,如果你想自己构建它,你也可以直接使用它。

    【讨论】:

      【解决方案3】:

      这是我为此所做的:

      只需在您的任务本身中包含 put 语句,以了解作业何时开始运行以及何时完成。

      此外,您也可以在执行的作业中包含 puts 语句。

      我正在使用paper trial add-on,这是一个非常强大的日志记录工具,您可以在特定时间搜索和查找任何特定日志。此外,您可以在计划作业开始运行时添加警报。

      【讨论】:

        【解决方案4】:

        我遇到了类似的问题(使用较新的 Heroku PGBackups 服务)并发现了一个意外的解释。

        rake 任务rake pgbackups-archive 不是由 Heroku 调度程序运行的,但是当我从命令行手动运行它时它可以工作。

        就我而言,我注意到我的问题是由 Heroku 界面(似乎不是 CET)使用的不同时区引起的。所以我的 rake 任务应该在每天的特定时间有效地运行,因为我改变了一天中的特定时间进行测试,而且我总是错过 Heroku 时区中的指定时间。

        您可以尝试每十分钟运行一次任务,看看它是否有效。

        【讨论】:

        • Heroku 最近在所有时间戳上添加了时区,所以这个问题应该解决了。
        猜你喜欢
        • 1970-01-01
        • 2017-05-04
        • 1970-01-01
        • 2017-07-17
        • 1970-01-01
        • 2019-12-06
        • 2014-04-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多