【问题标题】:Scheduling/scripting with Play Framework (or non-rails project) in Heroku在 Heroku 中使用 Play Framework(或非 Rails 项目)进行调度/脚本编写
【发布时间】:2012-05-24 17:33:15
【问题描述】:

嗯,我的头在这里有点旋转。我从我认为很简单的任务开始,在 heroku 上定期进行 db 转储并将它们推送到个人 S3 帐户进行备份。

我不确定执行此操作的最佳方法。在 Java 中访问 S3 非常清晰,从 heroku 获取 db 转储现在就像泥巴一样清晰......

免责声明:我不了解 Ruby,如果我不需要,我真的不想学习 Ruby,我真的很想使用 Java(这就是我选择 play 的原因)并且我想拥有它托管,这就是我选择 Heroku 的原因 :-)

所以,我可以使用 heroku 调度程序,但我不明白这里正在执行哪些脚本 - 是 /bin 中的所有脚本吗?这些是什么类型的脚本,它们是 ruby​​ 脚本吗?当它们不是 rake 任务时,我如何将它们添加为“任务”?

我可以通过 URL 使用 pgbackups 吗?看起来 rake 示例执行 pg_dump 代替,写入 tmp 文件,然后从那里移动它。我很不清楚如何从脚本中访问 heroku 数据库的东西,到目前为止我看到的例子都是 rake,所以任何见解都会有所帮助......

或者从我的 java 应用程序内部访问它,Heroku java API 的状态是什么?如果有办法从我的 java 访问 heroku 运行时,或者以某种方式使用 heroku.jar?

很高兴获得该领域的一些总体指导和最佳实践 - 谢谢!!!

【问题讨论】:

  • 这是一个很好的问题,但我没有很好的答案。但可能还有另一种可行的方法。你在使用共享数据库插件吗?如果是这样,您可能希望改用 postgres.heroku.com 数据库。他们有一个dev plan 和许多功能,可以提供更好的方法来做到这一点。
  • 我在一个共享数据库上。现在,当我运行 Heroku 运行 Bash 时,我似乎无法访问 pg_dump。这似乎很奇怪,因为我在 ruby​​ 应用程序中看到的 rake 任务称为 pg_dump。我认为通过这最后一块拼图,我可以得到一些工作......
  • 您可以使用heroku run bash 来查看测功系统上的内容。
  • 我刚刚整理了一个 Play 2 小应用程序,它有一个可以作为一次性进程或从 Heroku Scheduler 附加组件运行的作业:github.com/jamesward/play2-scheduled-job-demo 希望对您有所帮助。
  • 感谢您提供的好例子!我认为我这个问题得到了很好的回答,但不知道如何从这条评论中投票给你——无论如何——这是我的意图!

标签: heroku playframework


【解决方案1】:

从谷歌组我发现了这个花絮: http://groups.google.com/group/heroku/browse_thread/thread/7fe984c3d2d01f21/9474f31138636332?lnk=gst&q=scheduler+#9474f31138636332

“抱歉延迟回复。我们更新了文档以提及通过 heroku run 运行 Procfile 条目: http://devcenter.heroku.com/articles/oneoff-admin-ps

任何通过 heroku run 工作的东西都可以通过 Heroku Scheduler 工作。只需将进程类型的名称作为“任务”放在调度程序中即可。不需要特殊的语法。甚至可以传递参数。”

从上面的这个和 James Ward 的最后一个例子,我正在考虑这个答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 2013-10-24
    • 1970-01-01
    • 2011-09-19
    • 1970-01-01
    相关资源
    最近更新 更多