問題は、マングースと群衆との互換性のどこかにあります。
「スレッド」ごとに新しい「接続」イベントが発生し、接続時にドキュメントを削除します https://gist.github.com/wootwoot1234/49cb7d082850d93f8cd03da164644cfb#file-index-js-L100 :
db.once('open', async function() {
await Message.deleteOne(messageQuery); // <=== remove it from here to fix the problem
throng({
worker: start,
count: 50,
lifetime: Infinity
});
});
これは、throngがスレッド間、特に接続プール間でグローバル変数を分離する方法が原因である必要があります。デフォルトでは、マングース接続プールは5です。これは、データベースへの接続が一度に5つ以下であることを意味します。ドライバーはそれらを開いたままにして再利用し、接続コストを節約します。
Atlas接続の監視をチェックすると、このスクリプトを実行すると、さらに100の接続が表示されます。