【问题标题】:Heroku scheduled task running every 10 minutes, scheduled once an hourHeroku 计划任务每​​ 10 分钟运行一次,每小时计划一次
【发布时间】:2013-01-30 20:12:00
【问题描述】:

所以我刚刚将我的 twitter 机器人推送到 Heroku,并使用 Heroku 调度程序插件设置为在半小时内每小时运行一次。但是,无论出于何种原因,它每 10 分钟运行一次。这是调度程序的错误吗?以下是调度程序成功运行它并在十分钟后尝试再次运行它时的日志摘录:

2013-01-30T19:30:20+00:00 heroku[scheduler.4875]: Starting process with command `python ff7ebooks.py`
2013-01-30T19:30:21+00:00 heroku[scheduler.4875]: State changed from starting to up
2013-01-30T19:30:24+00:00 heroku[scheduler.4875]: Process exited with status 0
2013-01-30T19:30:24+00:00 heroku[scheduler.4875]: State changed from up to complete
2013-01-30T19:34:34+00:00 heroku[web.1]: State changed from crashed to starting
2013-01-30T19:34:42+00:00 heroku[web.1]: Starting process with command `python ff7ebooks.py`
2013-01-30T19:34:44+00:00 heroku[web.1]: Process exited with status 0
2013-01-30T19:34:44+00:00 heroku[web.1]: State changed from starting to crashed

我可以提供任何人需要的任何信息来帮助我诊断此问题。[web.1] 日志消息每隔几分钟就会重复一次。我不想向我的追随者发送垃圾邮件。

【问题讨论】:

    标签: python heroku scheduler


    【解决方案1】:

    如果其他人有这个问题,我想通了。我启用了调度程序,然后分配了 0 个测功机,这样它只在计划运行时分配一个 Heroku 测功机。由于某种原因,它一直在运行我的进程,并且(我的假设是)Twitter 每隔几分钟才让它连接到一个套接字,这导致了零星的推文。

    【讨论】:

    • 感谢您的提示。我有一个预定的“每日”任务,而是每 25 分钟运行一次。我认为这是因为我开启了自动缩放功能。
    【解决方案2】:

    我会与你分享一个帮助我一次性运行脚本的人的解决方案(比如一个启动然后结束,而不是继续运行的 python 脚本)。

    任何问题都可以告诉我,我会帮助你 --> andreabalbo.com

    你好安德里亚

    我还刚刚在我的 Procfile 中创建了一个随机进程类型:

    tmp-process-type: 命令:测试

    我没有在 Heroku 仪表板中切换进程类型。后 安装高级调度程序,我使用命令创建触发器 每分钟运行一次的“tmp-process-type”。看我的日志我可以 看到每分钟都有一个进程以“command:test”开始, 确认 Procfile 中的进程类型正在工作。我那时 在 Heroku 仪表板中切换进程类型。这出现了 立即在我的日志中:

    扩展到 tmp-process-type@1:Free web@0:Free by user ...

    这是因为在切换之后,Heroku 会启动一个普通的测功机 它会努力跟上。由于您的脚本是结束的任务,因此 dyno 死了,Heroku 会自动重启它,导致你的任务 运行多次。

    总之,以下步骤应该可以解决您的问题: 1. 关闭您的流程类型(但将其保留在 Procfile 中) 2.安装高级调度器 3. 使用命令“tmp-process-type”创建触发器(重复或一次性) 4. 查看你的日志,看看有没有什么奇怪的东西出现

    致以诚挚的问候,奥斯卡

    【讨论】:

      【解决方案3】:

      最后只通过一个动作解决了这个问题:

      • 我将工人数量设为 0
      • 然后在调度程序中仍然放置“python ELO_voetbal.py”并为此自动启动一个工作器。
      • 所以我既没有使用高级调度程序,也没有在某处放置“tmp-process-type”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-06-01
        • 1970-01-01
        • 1970-01-01
        • 2022-07-28
        • 1970-01-01
        • 2014-12-29
        • 2021-06-22
        相关资源
        最近更新 更多