![](/img/trans.png)
[英]How do I poll Google Long-Running Operations using Python Library?
[英]Which GCP solution should be used for an infinite-lifespan/long-running process?
我目前在 Heroku 上托管,它以一種需要顯式代碼更改才能將事情放入作業隊列的方式處理長時間運行的進程。 我不想像作業隊列那樣進行顯式代碼更改,所以我想將這個特定的塊移出。
我有一個Gmail.users.watch
email 觀察者在那里運行,我想將它移到 GCP,因為 Heroku 似乎遇到了R15 - Vastly exceeded memory quota
錯誤。 我相信這是因為對於 Heroku 處理的每個請求,它都會生成一個長期運行的Gmail.users.watch
進程的新實例。 (編輯:開個玩笑,這是 memory 泄漏)
const beginWatcher = () => {
gmail.users.watch(
{
auth: authClient,
userId: "me",
requestBody: {
topicName: topicURL,
labelIds: ["INBOX"]
}
},
(error) => {
if (error) {
console.log(error)
return
}
}
)
}
beginWatcher()
我沒有很多從頭開始的 GCP 經驗,我想知道;
我的直覺告訴我 Google Compute Engine,但我只是希望有人為我確認; 你到底把這樣一個無限生命周期的過程放在 GCP 的什么地方。
如果您選擇 Google Compute Engine,您可能會因管理自己的 VM 而產生一些不必要的開銷。 對於您描述的用例來說,它不應該那么復雜,但它可能會產生一些意外的驚喜。
使用 VM 的好處是,您可以通過實施某種垃圾收集器來清理死進程或什至每隔一段時間重新啟動機器來解決 memory 泄漏。
話雖如此,您問題的真正解決方案可能是解決您遇到的 memory 泄漏。 在大多數情況下,這比將您的應用程序遷移到新平台需要更少的努力。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.