我对heroku的整个dyno业务感到有点困惑。在他们的网站上,他们将dyno定义为:
dyno是一个运行单个的轻量级Linux容器 用户指定的命令。 dyno可以运行其中的任何可用命令 默认环境(我们在Cedar堆栈中提供的内容)或您的 app的slug(应用程序的压缩和预先打包的副本和 它的依赖关系)。
这(有点?)在我的脑海中是有意义的,但是当我想到在一个网络应用程序运行的多个dynos环境中的dynos时,我的大脑会扭曲。
让我建立一个带有服务器的Web应用程序,该服务器每3个小时只为所有用户运行一次非常重要的任务。如果我为这个站点运行多个web dynos,这是否意味着每个dyno上都运行一个单独的服务器实例?那么每3个小时运行一次非常重要的任务是否会每3个小时在每个dyno上运行一次?
非常感谢您的澄清!
答案 0 :(得分:1)
每个dyno都是在其中一个heroku实例中运行的LXC container。 根据你的dyno大小,同一个实例上可能还有其他容器。
但粗略的想法是,你运行的每个dyno都是一个不同的实例,并且每3小时在任何web
dyno上运行的任务将在所有这些dyno上运行。
您可能需要查看heroku scheduler插件。它将以指定的间隔运行one-off dyno,允许您运行类似cron的任务。