내가 발견한 SaaS 제품을 작업하는 동안 10,000명의 사용자의 경우 크레딧을 재설정하거나 무료 프롬프트를 받으려면 일반 DB 쿼리와 함께 매일 10,001개의 쿼리가 필요합니다. 스마트 집계를 사용하면 사용자가 10,000명이든 100,000명이든 관계없이 2개의 쿼리만 필요합니다!
먼저 MongoDB 프로덕션 데이터베이스에 대한 비용 검토를 제공하겠습니다(10,000 및 1년):
일반적인 일일 검색어: 10,001
연간 쿼리: 10,001 x 365 = 3,650,365 쿼리
연간 비용: 3,650,365 x $0.001 = 3,650.37 USD
집계 방식, 일일 쿼리 수: 2
연간 쿼리: 2 x 365 = 730개 쿼리
연간 비용: 730 x $0.001 = 0.73 USD
절감액: 3,650.37 - 0.73 = 3,649.64 USD(거의 4 lakh bdt)
멋지네요. 이제 전통적인 쿼리 접근 방식을 살펴보세요(각 사용자에 대해 하나의 쿼리를 만듭니다)
const resetLimitsForUsers = async () => { const users = await User.find({ /* conditions to select users */ }); for (const user of users) { if (user.plan.remaining_prompt_count < 3 || user.plan.remaining_page_count < 3) { user.plan.remaining_prompt_count = 3; user.plan.total_prompt_count = 3; // Save updated plan await user.plan.save(); } } };
여기서 사용자가 10,000명이라면 10,001개의 쿼리가 발생합니다(각 사용자당 1개 + 사용자를 가져오기 위한 초기 쿼리). 엄청난 양입니다..
이제 영웅 항목이 있습니다. [좀 어려워 보이지만 엄청난 돈을 절약할 수 있습니다]
const resetPlanCounts = () => { cron.schedule('* * * * *', async () => { try { const twoMinutesAgo = new Date(Date.now() - 2 * 60 * 1000); // 2 minutes ago const usersWithRegisteredPlan = await User.aggregate([ { $match: { createdAt: { $lte: twoMinutesAgo }, plan: { $exists: true } } }, { $lookup: { from: 'plans', localField: 'plan', foreignField: '_id', as: 'planDetails' } }, { $unwind: '$planDetails' }, { $match: { 'planDetails.name': 'Registered', $or: [ { 'planDetails.remaining_prompt_count': { $lt: 3 } }, { 'planDetails.remaining_page_count': { $lt: 3 } } ] } }, { $project: { planId: '$planDetails._id' } } ]); const planIds = usersWithRegisteredPlan.map(user => user.planId); if (planIds.length > 0) { const { modifiedCount } = await Plan.updateMany( { _id: { $in: planIds } }, { $set: { remaining_prompt_count: 3, total_prompt_count: 3, remaining_page_count: 3, total_page_count: 3 } } ); console.log(`${modifiedCount} plans reset for "Registered" users.`); } else { console.log('No plans to reset for today.'); } } catch (error) { console.error('Error resetting plan counts:', error); } }); };
이것이 바로 10,000명의 사용자 크레딧이나 한도를 모두 업데이트하기 위해 크론 작업[특정 시간에 자동으로 실행]을 실행하여 연간 3,600달러 이상을 절약할 수 있는 방법입니다.
작가님,
이름: 마히누르 라만
연락처: dev.mahinur.rahman@gmail.com
위 내용은 크론 작업 및 비용 효율성에서 집계의 힘의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!