Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Heroku 对于无限寿命/长时间运行的流程,应使用哪种GCP解决方案?_Heroku_Google Cloud Platform_Gmail Api - Fatal编程技术网

Heroku 对于无限寿命/长时间运行的流程,应使用哪种GCP解决方案?

Heroku 对于无限寿命/长时间运行的流程,应使用哪种GCP解决方案?,heroku,google-cloud-platform,gmail-api,Heroku,Google Cloud Platform,Gmail Api,我目前在Heroku上托管,它以一种需要显式代码更改的方式处理长时间运行的进程,以便将内容放入作业队列。我不想像作业队列那样进行显式代码更改,所以我想将这个特定块移出 我有一个Gmail.users.watchemail watcher运行在那里,我想把它移到GCP上,因为Heroku似乎遇到了R15-我的代码大大超过了内存配额错误。我相信这是因为对于Heroku处理的每个请求,它都会产生一个长时间运行的Gmail.users.watch过程的新实例。(编辑:只是开玩笑,这是内存泄漏) cons

我目前在Heroku上托管,它以一种需要显式代码更改的方式处理长时间运行的进程,以便将内容放入作业队列。我不想像作业队列那样进行显式代码更改,所以我想将这个特定块移出

我有一个
Gmail.users.watch
email watcher运行在那里,我想把它移到GCP上,因为Heroku似乎遇到了
R15-我的代码大大超过了内存配额
错误。我相信这是因为对于Heroku处理的每个请求,它都会产生一个长时间运行的
Gmail.users.watch
过程的新实例。(编辑:只是开玩笑,这是内存泄漏)

const beginWatcher=()=>{
gmail.users.watch(
{
auth:authClient,
用户名:“我”,
请求主体:{
主题名称:主题URL,
标签ID:[“收件箱”]
}
},
(错误)=>{
如果(错误){
console.log(错误)
返回
}
}
)
}
beginWatcher()
我没有太多的GCP从无到有的经验,我想知道

  • 上述长时间运行的流程在GCP中适用于哪里?
    • GoogleAppEngine看起来基本上是Heroku,但我相信我需要一个服务器实例来实现像上面代码一样永远运行的东西
    • 谷歌计算引擎似乎是一个单一的虚拟机启动,但似乎也被用于繁重的计算负载,而不仅仅是一个电子邮件观察者,所以这可能是矫枉过正
    • Google Kubernetes引擎似乎在处理托管时考虑到了Docker,但对于这样的东西来说,这似乎过于复杂,因为我必须指定几乎所有的内容
  • 我是否应该使用另一种不是上述三种解决方案之一的GCP解决方案?

  • 我的直觉告诉我谷歌计算引擎,但我只想有人帮我确认一下在GCP中,你到底把这样一个无限生命周期的过程放在哪里了?如果你选择Google Compute Engine,你可能会在管理自己的虚拟机时产生一些不必要的开销。对于您所描述的用例来说,它不应该那么复杂,但它可能会产生一些不必要的惊喜。
    使用VM的好处在于,您可以通过实现某种垃圾收集器来解决内存泄漏问题,垃圾收集器可以清理死掉的进程,甚至可以每隔一段时间重新启动机器

    话虽如此,解决问题的真正办法可能是解决您正在经历的内存泄漏问题。在大多数情况下,这比将应用程序移动到新平台所需的工作量要少