当前位置: 首页 > 面试题库 >

在Heroku测功机上运行多个进程是否可行?

支才
2023-03-14
问题内容

我知道Heroku平台的内存限制,而且我知道将应用程序分为Web和Worker
dynos更具可扩展性。但是,我仍然希望在Web进程旁边运行异步任务以进行测试。Dynos成本很高,我想在Heroku提供的免费实例上进行原型制作。

在与Web进程相同的动态中生成新任务作为流程或子流程存在任何问题吗?


问题答案:

在较新的Cedar堆栈上,生成多个进程没有问题。每个dyno都是虚拟机,除了内存和CPU使用率(我认为大约512
MB内存和1个CPU内核)之外,没有任何特殊限制。遵循某些堆栈(如Python)的更新安装说明,将导致开箱即用多个(Web服务器)进程进行配置。

Web
dynos上安装的软件可能会有所不同,具体取决于您所使用的buildpack。如果您的子流程需要特殊的软件,那么您可能必须将其与应用程序捆绑在一起,或者(更好)滚动自己的buildpack。

在这一点上,我通常会提醒您,强烈建议您使用适当的任务队列系统在工作者dyno而非Web
dyno上运行异步任务,但这听起来您已经知道了。请记住,只有一个Web
dyno的帐户(通常意味着“免费”帐户)将在一个小时左右没有收到任何Web请求的情况下使该dyno停止运行,并且那时在该dyno上运行的任何后台进程时间必定会被杀死。具有多个网络测功的帐户不受此限制。



 类似资料:
  • 问题内容: JVM是否可以同时运行多个程序?如果是这样,怎么办?如果没有,为什么? 要运行程序,我们只需 但是我们可以使用同一个JVM实例来运行另一个程序吗? 问题答案: 答案取决于您对“程序”的定义。具有方法并以其开头的Java程序通常无法在同一JVM中运行,因为没有内置的资源或名称空间分隔。例如,如果两个程序使用同一库的冲突版本怎么办? 我们还提供了旨在共享JVM的应用程序,例如企业应用程序。

  • 我有一个gradle项目,有3个使用spring boot的模块。这3个spring boot应用程序并行运行并相互交互。 例如,MODULE1将数据保存在MODULE2中,而MODULE3通过Rest API从MODULE2检索数据。 我想对这3个spring boot应用程序之间的交互进行集成测试(即,让它们分别在不同的端口上运行)。有可能吗?怎样 我知道我们可以为单个spring boot应

  • 问题内容: 如果是跑它运行在您的文件结尾通过运行启动格式的功能和使用(* T testing.T)模块。我想知道文件中的每个功能是同时运行还是确定地分别运行每个功能?是否为每个人创建一个执行例程?如果确实为每个例程创建了一个go例程,是否可以某种方式监视go例程?是否有可能做类似的事情并为每个实例获取一个实例并对其进行监控,诸如此类? 注意:这个问题假设您使用go(测试)随附的测试框架。 问题答案

  • 问题内容: 作为构建穷人看门狗并确保应用程序崩溃的一种方法(直到我弄清原因),我需要编写一个PHP CLI脚本,该脚本将由cron每5百万次运行一次,以检查该进程仍在运行。 基于此页面,我尝试了以下代码,但是即使我使用虚假数据对其进行调用,它也始终返回True: 接下来,我尝试了这段代码 … …但是没有达到我的期望: FWIW,此脚本与PHP 5.2.5的CLI版本一起运行,并且操作系统为uCli

  • 问题内容: 我正在使用Celery管理异步任务。但是,有时候,芹菜加工过程会停止,这不会导致任何任务被执行。我希望能够检查芹菜的状态,并确保一切正常,如果我发现任何问题,请向用户显示错误消息。从Celery Worker文档中看来,我可能可以使用ping或inspect进行此操作,但是ping感觉很笨拙,并且不清楚要使用的检查方式是否确切(如果inspect()。registered()为空?)。

  • 问题内容: 标准方法如下: 在这种情况下,如果跟踪当前进程(例如,使用gdb运行或附加到该进程),则ptrace返回错误。 但这有一个严重的问题:如果调用成功返回,则gdb稍后可能不会附加到它。这是一个问题,因为我没有尝试实现反调试的东西。我的目的是在满足条件(即断言失败)并且gdb正在运行时发出“ int 3”(否则,我会得到SIGTRAP来停止应用程序)。 禁用SIGTRAP并每次发出’int

  • 我有一个java maven项目,我希望使用多线程进行测试。我在src/test中有testng.xml,maven surefire插件被配置为使用它。就像这个页面一样:http://maven.apache.org/surefire/maven-surefire-plugin/examples/testng.html 编辑:增加了一定的pom条目

  • 我现在不知道如何写一个合适的方法来测试这种行为。请不要投反对票... 我现在有一个java类负责处理和向多个数据库添加数据。每个数据库保存相同的数据,但处理方式不同(例如,使用不同的插值速率进行插值)。 所以我运行程序(点击绿色矩形),修改参数(插值率)并运行程序。所以我有两个进程运行(因为大约。这就是为什么我不想冒任何中断的风险,担心数据库被搞砸了)。 我的问题是:这个修改是否适用于已经运行的进