我想在Amazon Lambda上運行的NodeJS服務中使用mysql池。 這是我的模塊開始,隨着數據庫的工作原理:如果我剛剛部署的服務和執行在亞馬遜lambda上使用mysql池
- :
console.log('init database module ...'); var settings = require('./settings.json'); var mysql = require('mysql'); var pool = mysql.createPool(settings);
如從亞馬遜日誌以下控制檯這段代碼被執行非常頻繁10個請求同時執行 - 所有這10個請求都執行這段代碼。
- 如果我在第一系列後立即再次同時執行10個請求 - 它們不執行此代碼。
- 如果有一段時間從最後一次查詢傳遞過來 - 那麼某些請求將重新執行該代碼。
即使我使用全球 - 這降低但不是消除重複:
if (!global.pool) {
console.log('init database module ...');
var settings = require('./settings.json');
var mysql = require('mysql');
global.pool = mysql.createPool(settings);
}
而且,如果請求執行具有一定的誤差 - 被請求和之後執行這一段代碼global.pool此時爲空。
那麼,這是否意味着在Amazon Lambda中使用池是不可能的? 有沒有什麼辦法可以讓亞馬遜每次都使用同一個池實例?
所有你在點1,2描述,以及圖3是具有多個容器一致和[容器再利用](https://aws.amazon.com/blogs/compute/container-reuse-in-lambda/)在LAMBDA 。你熟悉這個嗎? –
結論是什麼?彙集沒有意義,對吧? – Boris