$lang['tuto'] = "ਟਿ utorial ਟੋਰਿਅਲਸ"; ?>$lang['tuto'] = "ਟਿ utorial ਟੋਰਿਅਲਸ"; ?> ਬਲਕ ਓਪਰੇਸ਼ਨਾਂ ਲਈ

ਬਲਕ ਓਪਰੇਸ਼ਨਾਂ ਲਈ ਸਰਵਰ-ਸਾਈਡ ਇਵੈਂਟਸ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ NestJS ਵਿੱਚ ਅਣਥੱਕ ਸੂਚਨਾਵਾਂ

SSE

ਬਲਕ ਇਨਸਰਟ ਓਪਰੇਸ਼ਨਾਂ ਲਈ ਸੁਚਾਰੂ ਨੋਟੀਫਿਕੇਸ਼ਨ ਡਿਲਿਵਰੀ

ਕਲਪਨਾ ਕਰੋ ਕਿ ਤੁਸੀਂ ਇੱਕ ਸਿਸਟਮ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰ ਰਹੇ ਹੋ ਜਿੱਥੇ ਵਿਭਾਗ, ਗ੍ਰੇਡ, ਜਾਂ ਅਨੁਭਵ ਵਰਗੇ ਵੱਖ-ਵੱਖ ਮਾਪਦੰਡਾਂ ਦੇ ਆਧਾਰ 'ਤੇ ਸੈਂਕੜੇ ਕਰਮਚਾਰੀਆਂ ਨੂੰ ਵਾਊਚਰ ਦਿੱਤੇ ਗਏ ਹਨ। ਸਿਸਟਮ ਵਿੱਚ ਰੁਕਾਵਟਾਂ ਪੈਦਾ ਕੀਤੇ ਬਿਨਾਂ ਹਰੇਕ ਕਰਮਚਾਰੀ ਨੂੰ ਕੁਸ਼ਲਤਾ ਨਾਲ ਸੂਚਿਤ ਕਰਨਾ ਇੱਕ ਵੱਡਾ ਕੰਮ ਹੈ। 🔔 ਜਦੋਂ ਤੁਸੀਂ ਸਾਕਟਾਂ ਜਾਂ ਪੋਲਿੰਗ ਵਿਧੀ ਦੀਆਂ ਗੁੰਝਲਾਂ ਤੋਂ ਬਚਣ ਦਾ ਟੀਚਾ ਰੱਖਦੇ ਹੋ ਤਾਂ ਇਹ ਚੁਣੌਤੀ ਹੋਰ ਵੀ ਔਖੀ ਹੋ ਜਾਂਦੀ ਹੈ।

ਅਜਿਹੇ ਹਾਲਾਤਾਂ ਵਿੱਚ, ਸਰਵਰ-ਸਾਈਡ ਇਵੈਂਟਸ (SSE) ਇੱਕ ਸ਼ਕਤੀਸ਼ਾਲੀ ਪਰ ਸਿੱਧੇ ਹੱਲ ਵਜੋਂ ਉੱਭਰਦੇ ਹਨ। ਆਪਣੀ NestJS ਐਪਲੀਕੇਸ਼ਨ ਵਿੱਚ SSE ਦਾ ਲਾਭ ਉਠਾ ਕੇ, ਤੁਸੀਂ ਗਤੀਸ਼ੀਲ ਮਾਪਦੰਡਾਂ ਦੇ ਆਧਾਰ 'ਤੇ ਕਰਮਚਾਰੀਆਂ ਦੇ ਖਾਸ ਸਮੂਹਾਂ ਨੂੰ ਸੂਚਿਤ ਕਰਨ ਲਈ ਇੱਕ ਰੀਅਲ-ਟਾਈਮ ਸੰਚਾਰ ਚੈਨਲ ਸਥਾਪਤ ਕਰ ਸਕਦੇ ਹੋ। ਉਦਾਹਰਨ ਲਈ, ਜਦੋਂ ਵਿਕਰੀ ਵਿਭਾਗ ਨੂੰ ਵਾਊਚਰ ਅਲਾਟ ਕੀਤੇ ਜਾਂਦੇ ਹਨ, ਤਾਂ ਸਿਰਫ਼ ਉਹਨਾਂ ਕਰਮਚਾਰੀਆਂ ਨੂੰ ਹੀ ਸੂਚਨਾਵਾਂ ਮਿਲਣੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ, ਜੋ ਕਿ ਸਹੀ ਅਤੇ ਅਰਥਪੂਰਨ ਅੱਪਡੇਟ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹਨ।

ਇਸ ਲੇਖ ਦੁਆਰਾ, ਅਸੀਂ ਇੱਕ ਵਿਹਾਰਕ ਉਦਾਹਰਣ ਵਿੱਚ ਡੁਬਕੀ ਲਗਾਵਾਂਗੇ ਜੋ ਇਹ ਦਰਸਾਉਂਦੀ ਹੈ ਕਿ NestJS ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਇੱਕ ਬਲਕ ਸੰਮਿਲਨ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ SSE ਨੂੰ ਕਿਵੇਂ ਏਕੀਕ੍ਰਿਤ ਕਰਨਾ ਹੈ। ਅਸੀਂ ਜੀਵਨ-ਚੱਕਰ ਵਿੱਚੋਂ ਲੰਘਾਂਗੇ, ਬੈਕਐਂਡ ਵਿੱਚ ਘਟਨਾਵਾਂ ਨੂੰ ਚਾਲੂ ਕਰਨ ਤੋਂ ਲੈ ਕੇ ਫਰੰਟਐਂਡ 'ਤੇ ਅੱਪਡੇਟ ਸੁਣਨ ਤੱਕ, ਸਭ ਕੁਝ ਸਹਿਜ ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਕਾਇਮ ਰੱਖਦੇ ਹੋਏ। 💼

ਭਾਵੇਂ ਤੁਸੀਂ ਇੱਕ HR ਟੂਲ ਜਾਂ ਇੱਕ ਵਿੱਤ ਐਪ ਵਿਕਸਿਤ ਕਰ ਰਹੇ ਹੋ, ਇਸ ਵਰਕਫਲੋ ਨੂੰ ਸਮਝਣਾ ਤੁਹਾਨੂੰ ਅਸਲ-ਸਮੇਂ ਵਿੱਚ ਵਿਅਕਤੀਗਤ ਸੂਚਨਾਵਾਂ ਪ੍ਰਦਾਨ ਕਰਨ ਲਈ ਸ਼ਕਤੀ ਪ੍ਰਦਾਨ ਕਰੇਗਾ। ਆਉ SSE ਦੀ ਸਾਦਗੀ ਅਤੇ ਇਹ ਤੁਹਾਡੀ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਉਪਭੋਗਤਾ ਅਨੁਭਵ ਨੂੰ ਕਿਵੇਂ ਉੱਚਾ ਕਰ ਸਕਦਾ ਹੈ ਬਾਰੇ ਜਾਣੀਏ।

ਹੁਕਮ ਵਰਤੋਂ ਦੀ ਉਦਾਹਰਨ
@Sse ਇੱਕ NestJS ਸਜਾਵਟ ਇੱਕ ਸਰਵਰ-ਸਾਈਡ ਇਵੈਂਟਸ (SSE) ਅੰਤਮ ਬਿੰਦੂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਉਦਾਹਰਣ ਲਈ, @Sse('ਵਾਉਚਰਡ-ਕਰਮਚਾਰੀ') ਕਲਾਇੰਟ ਨੂੰ ਰੀਅਲ-ਟਾਈਮ ਅੱਪਡੇਟ ਸਟ੍ਰੀਮ ਕਰਨ ਲਈ ਇੱਕ ਅੰਤਮ ਬਿੰਦੂ ਸੈੱਟ ਕਰਦਾ ਹੈ।
fromEvent RxJS ਤੋਂ ਇੱਕ ਫੰਕਸ਼ਨ ਜੋ ਇੱਕ ਦੁਆਰਾ ਉਤਸਰਜਿਤ ਇੱਕ ਇਵੈਂਟ ਨੂੰ ਬਦਲਦਾ ਹੈ ਇਵੈਂਟ ਐਮੀਟਰ ਇੱਕ ਨਿਰੀਖਣਯੋਗ ਧਾਰਾ ਵਿੱਚ. ਉਦਾਹਰਣ ਲਈ, fromEvent(this.eventEmitter, 'After-added-voucher') ਕਿਸੇ ਖਾਸ ਘਟਨਾ ਲਈ ਸੁਣਦਾ ਹੈ।
Observable RxJS ਤੋਂ ਇੱਕ ਮੁੱਖ ਸੰਕਲਪ ਅਸਿੰਕਰੋਨਸ ਡੇਟਾ ਸਟ੍ਰੀਮ ਦੇ ਪ੍ਰਬੰਧਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਇਹ NestJS ਵਿੱਚ ਸਰਵਰ-ਸਾਈਡ ਇਵੈਂਟਸ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਜ਼ਰੂਰੀ ਹੈ, ਜਿਵੇਂ ਕਿ ਦੇਖਣਯੋਗ<MessageEvent>.
@InjectQueue ਇੱਕ NestJS ਡੈਕੋਰੇਟਰ ਜੋ ਕਿ ਇੱਕ ਕਤਾਰ ਉਦਾਹਰਨ ਨੂੰ ਇੰਜੈਕਟ ਕਰਦਾ ਹੈ, ਬੁੱਲ ਵਰਗੀਆਂ ਲਾਇਬ੍ਰੇਰੀਆਂ ਨਾਲ ਨੌਕਰੀ ਦੀ ਪ੍ਰਕਿਰਿਆ ਦੇ ਪ੍ਰਬੰਧਨ ਲਈ ਉਪਯੋਗੀ। ਉਦਾਹਰਣ ਲਈ, @InjectQueue('allotVoucher') 'allotVoucher' ਨਾਮਕ ਕਤਾਰ ਤੱਕ ਪਹੁੰਚ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ।
WorkerHost BullMQ ਤੋਂ ਇੱਕ ਬੇਸ ਕਲਾਸ ਜੋ NestJS ਵਿੱਚ ਕਸਟਮ ਜੌਬ ਪ੍ਰੋਸੈਸਰਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੀ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਦ AllotVoucher Consumer ਕਲਾਸ ਵਧਦੀ ਹੈ ਵਰਕਰਹੋਸਟ ਖਾਸ ਨੌਕਰੀਆਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ.
@OnWorkerEvent ਇੱਕ ਸਜਾਵਟ ਕਰਨ ਵਾਲਾ ਇੱਕ ਕਤਾਰ ਨੌਕਰੀ ਦੇ ਖਾਸ ਜੀਵਨ ਚੱਕਰ ਦੀਆਂ ਘਟਨਾਵਾਂ ਨੂੰ ਸੁਣਦਾ ਸੀ। ਉਦਾਹਰਣ ਦੇ ਲਈ, @OnWorkerEvent('ਪੂਰਾ') ਨੌਕਰੀ ਦੀ "ਪੂਰੀ" ਘਟਨਾ ਨੂੰ ਸੰਭਾਲਦਾ ਹੈ।
createMany ਇੱਕ ਪ੍ਰਿਜ਼ਮਾ ਕਮਾਂਡ ਇੱਕ ਡੇਟਾਬੇਸ ਵਿੱਚ ਇੱਕ ਵਾਰ ਵਿੱਚ ਕਈ ਰਿਕਾਰਡਾਂ ਨੂੰ ਸੰਮਿਲਿਤ ਕਰਨ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਹੈ। ਉਦਾਹਰਣ ਲਈ, prisma.employeeVoucher.createMany ਇੱਕ ਸਿੰਗਲ ਓਪਰੇਸ਼ਨ ਵਿੱਚ ਸਾਰੇ ਕਰਮਚਾਰੀਆਂ ਦੇ ਵਾਊਚਰ ਜੋੜਦਾ ਹੈ।
EventSource ਬੈਕਐਂਡ ਤੋਂ ਸਰਵਰ-ਭੇਜੀਆਂ ਘਟਨਾਵਾਂ (SSE) ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਇੱਕ JavaScript API। ਉਦਾਹਰਣ ਲਈ, ਨਵਾਂ ਇਵੈਂਟਸਰੋਤ('http://localhost/vouchered-employee') ਸਟ੍ਰੀਮਿੰਗ ਡੇਟਾ ਲਈ ਇੱਕ ਕਨੈਕਸ਼ਨ ਸਥਾਪਿਤ ਕਰਦਾ ਹੈ।
add ਕਤਾਰ ਵਿੱਚ ਨਵੀਂ ਨੌਕਰੀ ਜੋੜਨ ਲਈ ਬੁਲ ਕਤਾਰਾਂ ਤੋਂ ਇੱਕ ਤਰੀਕਾ। ਉਦਾਹਰਣ ਦੇ ਲਈ, allotVoucherQueue.add('allot-voucher', jobData) ਪ੍ਰੋਸੈਸਿੰਗ ਲਈ ਇੱਕ ਕੰਮ ਨਿਯਤ ਕਰਦਾ ਹੈ।
@OnEvent ਇੱਕ NestJS ਡੈਕੋਰੇਟਰ ਜੋ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਅੰਦਰ ਨਿਕਲੀਆਂ ਖਾਸ ਘਟਨਾਵਾਂ ਨੂੰ ਸੁਣਦਾ ਹੈ। ਉਦਾਹਰਣ ਲਈ, @OnEvent('ਆਫ਼ਟਰ-ਅਲੋਕੇਟ-ਵਾਊਚਰ') ਇੱਕ ਢੰਗ ਨੂੰ ਚਾਲੂ ਕਰਦਾ ਹੈ ਜਦੋਂ ਇਹ ਘਟਨਾ ਨਿਕਲਦੀ ਹੈ।

ਸਰਵਰ-ਸਾਈਡ ਇਵੈਂਟਸ ਅਤੇ ਕਤਾਰਾਂ ਦੇ ਨਾਲ ਕੁਸ਼ਲ ਸੂਚਨਾਵਾਂ

ਪ੍ਰਦਾਨ ਕੀਤੀਆਂ ਗਈਆਂ ਸਕ੍ਰਿਪਟਾਂ ਇੱਕ ਸਿਸਟਮ ਨੂੰ ਦਰਸਾਉਂਦੀਆਂ ਹਨ ਜਿੱਥੇ ਡੇਟਾਬੇਸ ਵਿੱਚ ਵਾਊਚਰ ਰਿਕਾਰਡਾਂ ਦੇ ਬਲਕ ਸੰਮਿਲਨ ਤੋਂ ਬਾਅਦ ਕਰਮਚਾਰੀਆਂ ਨੂੰ ਅਸਲ-ਸਮੇਂ ਦੀਆਂ ਸੂਚਨਾਵਾਂ ਭੇਜੀਆਂ ਜਾਂਦੀਆਂ ਹਨ। ਵਿੱਚ ਪ੍ਰਕਿਰਿਆ ਸ਼ੁਰੂ ਹੁੰਦੀ ਹੈ , ਜੋ ਵਾਊਚਰ ਵੰਡ ਕਾਰਜਾਂ ਨੂੰ ਬਣਾਉਣ ਲਈ ਅੰਤਮ ਬਿੰਦੂ ਨੂੰ ਉਜਾਗਰ ਕਰਦਾ ਹੈ। ਜਦੋਂ ਕੋਈ ਕੰਮ ਬਣਾਇਆ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਇਹ ਨਾਮ ਦੀ ਇੱਕ ਘਟਨਾ ਨੂੰ ਛੱਡਦਾ ਹੈ . ਇਹ ਇਵੈਂਟ ਅਗਲੇ ਕਦਮਾਂ ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ ਜ਼ਰੂਰੀ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕਿ ਸਿਸਟਮ ਘਟਨਾ-ਸੰਚਾਲਿਤ ਅਤੇ ਮਾਡਿਊਲਰ ਹੈ। ਇਹ ਡਿਜ਼ਾਈਨ ਚਿੰਤਾਵਾਂ ਨੂੰ ਸਪਸ਼ਟ ਤੌਰ 'ਤੇ ਵੱਖ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਸਿਸਟਮ ਨੂੰ ਹੋਰ ਸੰਭਾਲਣਯੋਗ ਅਤੇ ਸਕੇਲੇਬਲ ਬਣਾਇਆ ਜਾਂਦਾ ਹੈ। 🎯

ਸੇਵਾ ਪਰਤ ਵਿੱਚ, BullMQ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕਤਾਰਬੱਧ ਕਾਰਜਾਂ ਲਈ ਤਰਕ ਨੂੰ ਸੰਭਾਲਦਾ ਹੈ। ਪ੍ਰਾਪਤ ਕਰਨ ਤੋਂ ਬਾਅਦ ਘਟਨਾ, ਇਹ ਨਾਮ ਵਾਲੀ ਕਤਾਰ ਵਿੱਚ ਇੱਕ ਨੌਕਰੀ ਜੋੜਦਾ ਹੈ . ਇਹ ਕਤਾਰ ਅਸਿੰਕ੍ਰੋਨਸ ਪ੍ਰੋਸੈਸਿੰਗ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਸਿਸਟਮ ਵੱਡੇ ਡੇਟਾਸੇਟਾਂ ਦੀ ਪ੍ਰਕਿਰਿਆ ਕਰਨ ਵੇਲੇ ਵੀ ਜਵਾਬਦੇਹ ਰਹੇਗਾ। ਉਦਾਹਰਨ ਲਈ, ਜੇਕਰ ਤੁਸੀਂ ਵਿਕਰੀ ਵਿਭਾਗ ਵਿੱਚ 200 ਕਰਮਚਾਰੀਆਂ ਨੂੰ ਵਾਊਚਰ ਅਲਾਟ ਕਰਦੇ ਹੋ, ਤਾਂ ਕਤਾਰ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਓਪਰੇਸ਼ਨ ਹੋਰ ਬੇਨਤੀਆਂ ਨੂੰ ਬਲੌਕ ਨਹੀਂ ਕਰਦਾ ਹੈ। ਕਤਾਰ ਦੀ ਸੰਰਚਨਾ ਵਿੱਚ ਵਿਕਲਪ ਸ਼ਾਮਲ ਹਨ ਜਿਵੇਂ ਕਿ removeOnComplete ਕੰਮ ਪੂਰਾ ਹੋਣ ਤੋਂ ਬਾਅਦ Redis ਨੂੰ ਸਾਫ਼ ਰੱਖਣ ਲਈ।

ਕਤਾਰ ਦੀਆਂ ਨੌਕਰੀਆਂ ਦੁਆਰਾ ਕਾਰਵਾਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਕਲਾਸ. ਇੱਥੇ, ਸੰਬੰਧਿਤ ਕਰਮਚਾਰੀਆਂ ਦੀ ਪਛਾਣ ਕਰਨ ਅਤੇ ਡੇਟਾਬੇਸ ਵਿੱਚ ਵਾਊਚਰ ਰਿਕਾਰਡਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਤਰਕ ਲਾਗੂ ਕੀਤਾ ਗਿਆ ਹੈ। ਪ੍ਰਿਜ਼ਮਾ ਕਮਾਂਡ ਵਿੱਚ ਰਿਕਾਰਡਾਂ ਨੂੰ ਬੈਚ-ਸੰਮਿਲਿਤ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਸਾਰਣੀ, ਜੋ ਪ੍ਰਦਰਸ਼ਨ ਲਈ ਅਨੁਕੂਲਿਤ ਹੈ। ਡਾਟਾਬੇਸ ਓਪਰੇਸ਼ਨ ਪੂਰਾ ਹੋਣ ਤੋਂ ਬਾਅਦ, ਗਾਹਕਾਂ ਨੂੰ ਸੂਚਿਤ ਕਰਨ ਲਈ ਇੱਕ ਹੋਰ ਇਵੈਂਟ ਜਾਰੀ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਇਹ ਇਵੈਂਟ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਕਰਮਚਾਰੀਆਂ ਨੂੰ ਸਿਰਫ਼ ਉਦੋਂ ਹੀ ਸੂਚਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਬਲਕ ਸੰਮਿਲਨ ਦੀ ਸਫਲਤਾਪੂਰਵਕ ਪ੍ਰਕਿਰਿਆ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਨੋਟੀਫਿਕੇਸ਼ਨ ਸਿਸਟਮ ਵਿੱਚ ਭਰੋਸੇਯੋਗਤਾ ਜੋੜਦੀ ਹੈ। 🌟

ਫਰੰਟਐਂਡ 'ਤੇ, ਰੀਐਕਟ ਕੰਪੋਨੈਂਟ ਸਰਵਰ ਦੁਆਰਾ ਭੇਜੀਆਂ ਗਈਆਂ ਘਟਨਾਵਾਂ ਨੂੰ ਇੱਕ ਰਾਹੀਂ ਸੁਣਦਾ ਹੈ . ਜਿਵੇਂ ਕਿ ਕਰਮਚਾਰੀਆਂ ਨੂੰ ਸੂਚਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਉਹਨਾਂ ਦੇ ਵੇਰਵਿਆਂ ਨੂੰ UI ਵਿੱਚ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਅੱਪਡੇਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਬਿਨਾਂ ਪੰਨੇ ਨੂੰ ਤਾਜ਼ਾ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਇਹ ਪਹੁੰਚ ਇੱਕ ਸਹਿਜ ਉਪਭੋਗਤਾ ਅਨੁਭਵ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ, ਆਧੁਨਿਕ ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨਾਂ ਜਿਵੇਂ ਲਾਈਵ ਸਪੋਰਟਸ ਸਕੋਰ ਜਾਂ ਸੋਸ਼ਲ ਮੀਡੀਆ ਸੂਚਨਾਵਾਂ ਵਿੱਚ ਦੇਖੇ ਗਏ ਅਸਲ-ਸਮੇਂ ਦੇ ਅਪਡੇਟਾਂ ਦੇ ਸਮਾਨ। ਉਦਾਹਰਨ ਲਈ, HR ਵਿਭਾਗ ਦੇ ਕਰਮਚਾਰੀ ਵਿਕਰੀ ਲਈ ਬਣਾਏ ਗਏ ਅੱਪਡੇਟ ਨਹੀਂ ਦੇਖ ਸਕਣਗੇ, ਕਿਉਂਕਿ ਬੈਕਐਂਡ ਅਲਾਟਮੈਂਟ ਮਾਪਦੰਡਾਂ ਦੇ ਆਧਾਰ 'ਤੇ ਇਵੈਂਟਾਂ ਨੂੰ ਠੀਕ ਤਰ੍ਹਾਂ ਫਿਲਟਰ ਕਰਦਾ ਹੈ। ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ ਇੱਕ ਉਪਭੋਗਤਾ-ਕੇਂਦ੍ਰਿਤ ਸਿਸਟਮ ਬਣਾਉਂਦੇ ਹੋਏ ਪ੍ਰਦਰਸ਼ਨ ਅਤੇ ਪ੍ਰਸੰਗਿਕਤਾ ਦੋਵਾਂ ਨੂੰ ਵਧਾਉਂਦੀ ਹੈ। 🖥️

NestJS ਵਿੱਚ ਸਰਵਰ-ਸਾਈਡ ਇਵੈਂਟਸ (SSE) ਦੇ ਨਾਲ ਬਲਕ ਵਿੱਚ ਸੂਚਨਾਵਾਂ ਭੇਜਣਾ

ਇਹ ਹੱਲ ਬਲਕ ਓਪਰੇਸ਼ਨਾਂ ਲਈ ਪ੍ਰਿਜ਼ਮਾ ਅਤੇ ਸਰਵਰ-ਸਾਈਡ ਇਵੈਂਟਸ (SSE) ਦੇ ਨਾਲ NestJS ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ ਇੱਕ ਬੈਕਐਂਡ ਪਹੁੰਚ ਦਰਸਾਉਂਦਾ ਹੈ। ਇਸ ਵਿੱਚ ਇੱਕ ਇਵੈਂਟ-ਸੰਚਾਲਿਤ ਆਰਕੀਟੈਕਚਰ ਅਤੇ ਕਤਾਰ ਪ੍ਰਣਾਲੀ ਸ਼ਾਮਲ ਹੈ।

// Backend: AllocateVoucherController
import { Controller, Post, Body, Sse, OnEvent } from '@nestjs/common';
import { AllocateVoucherService } from './allocate-voucher.service';
import { EventEmitter2 } from '@nestjs/event-emitter';
import { Observable } from 'rxjs';
import { map, fromEvent } from 'rxjs';
@Controller('allocate-voucher')
export class AllocateVoucherController {
  constructor(
    private readonly allocateVoucherService: AllocateVoucherService,
    private readonly eventEmitter: EventEmitter2
  ) {}
  @Post()
  async create(@Body() createDto: any) {
    const result = await this.allocateVoucherService.create(createDto);
    return result;
  }
  @Sse('vouchered-employee')
  updatedEmployeeEvent(): Observable<MessageEvent> {
    return fromEvent(this.eventEmitter, 'after-added-voucher').pipe(
      map((data) => new MessageEvent('after-added-voucher', { data })),
    );
  }
}

NestJS ਅਤੇ ਪ੍ਰਤੀਕਿਰਿਆ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਬਲਕ ਇਨਸਰਟਸ ਲਈ ਰੀਅਲ-ਟਾਈਮ ਅੱਪਡੇਟ

ਇਹ ਫਰੰਟਐਂਡ ਉਦਾਹਰਨ ਸਰਵਰ-ਸਾਈਡ ਇਵੈਂਟਸ ਨੂੰ ਸੁਣਨ ਲਈ ਪ੍ਰਤੀਕਿਰਿਆ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ ਅਤੇ ਡਾਟਾ ਪ੍ਰਾਪਤ ਹੋਣ 'ਤੇ UI ਨੂੰ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਅੱਪਡੇਟ ਕਰਦਾ ਹੈ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਬਲਕ ਸੰਮਿਲਨ ਤੋਂ ਬਾਅਦ ਕਰਮਚਾਰੀਆਂ ਨੂੰ ਰੀਅਲ-ਟਾਈਮ ਵਿੱਚ ਸੂਚਿਤ ਕੀਤਾ ਜਾਵੇ।

// Frontend: React Component for SSE
import React, { useEffect, useState } from 'react';
const EmployeeUpdates = () => {
  const [employees, setEmployees] = useState([]);
  useEffect(() => {
    const eventSource = new EventSource('http://localhost:3000/allocate-voucher/vouchered-employee');
    eventSource.onmessage = (event) => {
      const newEmployee = JSON.parse(event.data);
      setEmployees((prev) => [...prev, newEmployee]);
    };
    return () => eventSource.close();
  }, []);
  return (
    <table>
      <thead>
        <tr><th>Name</th><th>Voucher</th></tr>
      </thead>
      <tbody>
        {employees.map((emp) => (
          <tr key={emp.id}><td>{emp.name}</td><td>{emp.voucher}</td></tr>
        ))}
      </tbody>
    </table>
  );
};
export default EmployeeUpdates;

ਬਲਕ ਇਨਸਰਟ ਓਪਰੇਸ਼ਨਾਂ ਲਈ ਯੂਨਿਟ ਟੈਸਟਿੰਗ ਸੂਚਨਾਵਾਂ

ਇਹ ਜੈਸਟ ਟੈਸਟ NestJS ਵਿੱਚ ਸਰਵਰ-ਸਾਈਡ ਇਵੈਂਟਸ ਲਈ ਬੈਕਐਂਡ ਵਿੱਚ ਇਵੈਂਟ ਨਿਕਾਸ ਅਤੇ ਸੂਚਨਾ ਵਿਧੀ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਕਰਨ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ।

// Jest Test: AllocateVoucherService
import { Test, TestingModule } from '@nestjs/testing';
import { AllocateVoucherService } from './allocate-voucher.service';
import { EventEmitter2 } from '@nestjs/event-emitter';
describe('AllocateVoucherService', () => {
  let service: AllocateVoucherService;
  let eventEmitter: EventEmitter2;
  beforeEach(async () => {
    const module: TestingModule = await Test.createTestingModule({
      providers: [AllocateVoucherService, EventEmitter2],
    }).compile();
    service = module.get(AllocateVoucherService);
    eventEmitter = module.get(EventEmitter2);
  });
  it('should emit after-allocate-voucher event', async () => {
    jest.spyOn(eventEmitter, 'emit');
    const result = await service.create({ someData: 'test' });
    expect(eventEmitter.emit).toHaveBeenCalledWith('after-allocate-voucher', result);
  });
});

NestJS ਵਿੱਚ SSE ਦੇ ਨਾਲ ਰੀਅਲ-ਟਾਈਮ ਸਿਸਟਮ ਨੂੰ ਵਧਾਉਣਾ

ਜਦੋਂ ਕਿ ਅਸੀਂ ਕਰਮਚਾਰੀਆਂ ਨੂੰ ਵਾਊਚਰ ਅਲਾਟਮੈਂਟ ਬਾਰੇ ਸੂਚਿਤ ਕਰਨ ਲਈ ਸਰਵਰ-ਸਾਈਡ ਇਵੈਂਟਸ (SSE) ਨੂੰ ਲਾਗੂ ਕਰਨ ਦੀ ਖੋਜ ਕੀਤੀ ਹੈ, ਅਸਲ-ਸਮੇਂ ਦੀਆਂ ਪ੍ਰਣਾਲੀਆਂ ਵਿੱਚ SSE ਲਈ ਇੱਕ ਵਿਆਪਕ ਵਰਤੋਂ ਦਾ ਮਾਮਲਾ ਹੈ। SSE ਉਹਨਾਂ ਸਥਿਤੀਆਂ ਵਿੱਚ ਚਮਕਦਾ ਹੈ ਜਿੱਥੇ ਗਾਹਕਾਂ ਨੂੰ ਲਗਾਤਾਰ ਪੋਲਿੰਗ ਕੀਤੇ ਬਿਨਾਂ ਸਰਵਰ ਡੇਟਾ ਨਾਲ ਅਪਡੇਟ ਰਹਿਣ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਫਲੈਸ਼ ਸੇਲ ਦੇ ਦੌਰਾਨ ਲਾਈਵ ਇਨਵੈਂਟਰੀ ਅਪਡੇਟਸ ਨੂੰ ਟਰੈਕ ਕਰਨ ਵਾਲੇ ਇੱਕ ਔਨਲਾਈਨ ਰਿਟੇਲ ਪਲੇਟਫਾਰਮ ਬਾਰੇ ਸੋਚੋ। SSE ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ, ਤੁਸੀਂ ਸਾਰੇ ਕਨੈਕਟ ਕੀਤੇ ਗਾਹਕਾਂ ਨੂੰ ਕੁਸ਼ਲਤਾ ਨਾਲ ਅੱਪਡੇਟ ਪੁਸ਼ ਕਰ ਸਕਦੇ ਹੋ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹੋਏ ਕਿ ਉਹ ਬੇਲੋੜੇ ਸਰਵਰ ਲੋਡ ਤੋਂ ਬਿਨਾਂ ਨਵੀਨਤਮ ਸਟਾਕ ਪੱਧਰਾਂ ਨੂੰ ਦੇਖਦੇ ਹਨ। ਇਹ ਪਹੁੰਚ ਉਪਭੋਗਤਾ ਅਨੁਭਵ ਨੂੰ ਸਹਿਜ ਰੱਖਦੇ ਹੋਏ ਸਕੇਲੇਬਿਲਟੀ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ। 🛒

BullMQ ਵਰਗੇ ਉੱਨਤ ਕਤਾਰ ਪ੍ਰਣਾਲੀਆਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨਾ, ਜਿਵੇਂ ਕਿ ਅਸੀਂ ਨਾਲ ਕੀਤਾ ਸੀ ਕਤਾਰ, ਬਲਕ ਡੇਟਾ ਪ੍ਰੋਸੈਸਿੰਗ ਕਾਰਜਾਂ ਲਈ ਮਜ਼ਬੂਤੀ ਜੋੜਦੀ ਹੈ। ਕਤਾਰ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਭਾਵੇਂ ਸਰਵਰ ਰੀਸਟਾਰਟ ਹੁੰਦਾ ਹੈ, ਬਕਾਇਆ ਕੰਮ ਬਰਕਰਾਰ ਰਹਿੰਦੇ ਹਨ, ਅਤੇ ਪ੍ਰਕਿਰਿਆ ਮੁੜ ਸ਼ੁਰੂ ਹੁੰਦੀ ਹੈ। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਦੀ ਵਿਧੀ ਨੂੰ ਕੌਂਫਿਗਰ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹੋਏ ਕਿ ਅਸਫਲ ਨੌਕਰੀਆਂ (ਉਦਾਹਰਨ ਲਈ, ਅਸਥਾਈ ਡੇਟਾਬੇਸ ਡਾਊਨਟਾਈਮ ਦੇ ਕਾਰਨ) ਆਪਣੇ ਆਪ ਮੁੜ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਜੇਕਰ ਸਾਰੇ ਵਿਭਾਗਾਂ ਵਿੱਚ 300 ਕਰਮਚਾਰੀਆਂ ਨੂੰ ਇੱਕ ਅਲਾਟਮੈਂਟ ਵਿੱਚ ਇੱਕ ਅਸਥਾਈ ਗਲਤੀ ਦਾ ਸਾਹਮਣਾ ਕਰਨਾ ਪੈਂਦਾ ਹੈ, ਤਾਂ ਕਤਾਰ ਦੀ ਲਚਕਤਾ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਤੁਹਾਡੇ ਸਿਸਟਮ ਵਿੱਚ ਭਰੋਸੇਯੋਗਤਾ ਨੂੰ ਜੋੜਦੇ ਹੋਏ, ਕੋਈ ਵੀ ਰਿਕਾਰਡ ਅਣ-ਪ੍ਰੋਸੈਸਡ ਨਹੀਂ ਬਚਿਆ ਹੈ।

ਅਸਲ-ਸਮੇਂ ਦੀਆਂ ਸੂਚਨਾਵਾਂ ਤੋਂ ਇਲਾਵਾ, SSE ਉਹਨਾਂ ਕਾਰਜਾਂ ਲਈ ਈਮੇਲ ਸੇਵਾਵਾਂ ਨੂੰ ਵੀ ਪੂਰਕ ਕਰ ਸਕਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਲਈ ਵਿਸਤ੍ਰਿਤ ਸੰਖੇਪਾਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਸਾਰੀਆਂ ਵਾਊਚਰ ਸੂਚਨਾਵਾਂ SSE ਦੁਆਰਾ ਭੇਜੇ ਜਾਣ ਤੋਂ ਬਾਅਦ, ਬੈਕਐਂਡ ਅਸਿੰਕਰੋਨਸ ਤੌਰ 'ਤੇ ਇੱਕ ਰਿਪੋਰਟ ਤਿਆਰ ਕਰ ਸਕਦਾ ਹੈ ਅਤੇ ਪ੍ਰਬੰਧਕਾਂ ਨੂੰ ਇੱਕ ਏਕੀਕ੍ਰਿਤ ਈਮੇਲ ਭੇਜ ਸਕਦਾ ਹੈ। ਇਹ ਮਲਟੀ-ਚੈਨਲ ਸੰਚਾਰ ਉਪਭੋਗਤਾ ਤਰਜੀਹਾਂ ਦੀ ਵਿਸ਼ਾਲ ਸ਼੍ਰੇਣੀ ਨੂੰ ਪੂਰਾ ਕਰਦੇ ਹੋਏ, ਤੁਰੰਤ ਸੂਚਨਾਵਾਂ ਅਤੇ ਵਿਆਪਕ ਫਾਲੋ-ਅਪਸ ਦੋਵਾਂ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ। ਅਜਿਹਾ ਏਕੀਕਰਣ ਤੁਹਾਡੇ ਸਿਸਟਮ ਦੀ ਲਚਕਤਾ ਨੂੰ ਵਧਾਉਂਦਾ ਹੈ, ਇੱਕ ਵਧੀਆ ਉਪਭੋਗਤਾ ਅਨੁਭਵ ਬਣਾਉਂਦਾ ਹੈ। 📧

  1. WebSockets ਉੱਤੇ ਸਰਵਰ-ਸਾਈਡ ਇਵੈਂਟਸ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੇ ਕੀ ਫਾਇਦੇ ਹਨ?
  2. SSE ਲਾਗੂ ਕਰਨ ਲਈ ਸੌਖਾ ਹੈ ਅਤੇ HTTP ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ, ਇਸ ਨੂੰ ਫਾਇਰਵਾਲ-ਅਨੁਕੂਲ ਬਣਾਉਂਦਾ ਹੈ। WebSockets ਦੇ ਉਲਟ, ਇਸ ਨੂੰ ਸਿਰਫ਼ ਇੱਕ ਸਿੰਗਲ ਦਿਸ਼ਾ-ਨਿਰਦੇਸ਼ ਕੁਨੈਕਸ਼ਨ ਦੀ ਲੋੜ ਹੈ, ਜੋ ਕਿ ਅਸਲ-ਸਮੇਂ ਦੇ ਅੱਪਡੇਟ ਲਈ ਕੁਸ਼ਲ ਹੈ।
  3. ਕੀ ਮੈਂ ਵਰਤ ਸਕਦਾ ਹਾਂ ਇੱਕ ਕੰਟਰੋਲਰ ਵਿੱਚ ਕਈ ਅੰਤ ਬਿੰਦੂਆਂ ਨਾਲ?
  4. ਹਾਂ, ਤੁਸੀਂ ਮਲਟੀਪਲ ਪਰਿਭਾਸ਼ਿਤ ਕਰ ਸਕਦੇ ਹੋ ਖਾਸ ਲੋੜਾਂ ਦੇ ਆਧਾਰ 'ਤੇ ਗਾਹਕਾਂ ਨੂੰ ਵੱਖ-ਵੱਖ ਡਾਟਾ ਸਟ੍ਰੀਮ ਦੀ ਸੇਵਾ ਕਰਨ ਲਈ ਇੱਕੋ ਕੰਟਰੋਲਰ ਵਿੱਚ ਅੰਤਮ ਬਿੰਦੂ।
  5. ਕਤਾਰ ਪ੍ਰੋਸੈਸਿੰਗ ਦੌਰਾਨ ਮੈਂ ਗਲਤੀਆਂ ਨੂੰ ਕਿਵੇਂ ਸੰਭਾਲਾਂ?
  6. BullMQ ਦੇ ਨਾਲ, ਤੁਸੀਂ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਦੇ ਵਿਕਲਪਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਇਵੈਂਟ ਸਰੋਤਿਆਂ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ ਗਲਤੀਆਂ ਨੂੰ ਲੌਗ ਕਰਨ ਲਈ ਅਤੇ ਜੇ ਲੋੜ ਹੋਵੇ ਤਾਂ ਨੌਕਰੀਆਂ ਦੀ ਮੁੜ ਪ੍ਰਕਿਰਿਆ ਕਰਨ ਲਈ।
  7. ਪ੍ਰਿਜ਼ਮਾ ਦੀ ਕਰਦਾ ਹੈ ਵਿਧੀ ਸਹਾਇਤਾ ਟ੍ਰਾਂਜੈਕਸ਼ਨ ਰੋਲਬੈਕ?
  8. ਹਾਂ, ਪ੍ਰਿਜ਼ਮਾ ਦਾ ਇੱਕ ਲੈਣ-ਦੇਣ ਵਿੱਚ ਲਪੇਟਿਆ ਜਾ ਸਕਦਾ ਹੈ। ਜੇਕਰ ਟ੍ਰਾਂਜੈਕਸ਼ਨ ਵਿੱਚ ਕੋਈ ਕਾਰਵਾਈ ਅਸਫਲ ਹੋ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਸਾਰੇ ਓਪਰੇਸ਼ਨਾਂ ਨੂੰ ਇਕਸਾਰਤਾ ਲਈ ਵਾਪਸ ਲਿਆ ਜਾਂਦਾ ਹੈ।
  9. ਕੀ ਹੁੰਦਾ ਹੈ ਜੇਕਰ ਕਲਾਇੰਟ ਇੱਕ SSE ਸਟ੍ਰੀਮ ਦੌਰਾਨ ਡਿਸਕਨੈਕਟ ਹੋ ਜਾਂਦਾ ਹੈ?
  10. ਡਿਸਕਨੈਕਸ਼ਨ ਦਾ ਪਤਾ ਲੱਗਣ 'ਤੇ ਸਰਵਰ ਅੱਪਡੇਟ ਭੇਜਣਾ ਬੰਦ ਕਰ ਦਿੰਦਾ ਹੈ। ਤੁਸੀਂ ਕਲਾਇੰਟ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਰੀਕਨੈਕਟ ਤਰਕ ਨੂੰ ਲਾਗੂ ਕਰ ਸਕਦੇ ਹੋ API।
  11. ਕੀ SSE ਨੂੰ ਦੋ-ਪੱਖੀ ਸੰਚਾਰ ਲਈ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ?
  12. ਨਹੀਂ, SSE ਯੂਨੀਡਾਇਰੈਕਸ਼ਨਲ ਹੈ (ਸਰਵਰ ਤੋਂ ਕਲਾਇੰਟ)। ਦੋ-ਦਿਸ਼ਾ ਸੰਚਾਰ ਲਈ, WebSockets ਜਾਂ HTTP2 ਸਟ੍ਰੀਮ ਦੀ ਵਰਤੋਂ ਕਰੋ।
  13. ਮੈਂ NestJS ਵਿੱਚ SSE ਅੰਤਮ ਬਿੰਦੂਆਂ ਨੂੰ ਕਿਵੇਂ ਸੁਰੱਖਿਅਤ ਕਰਾਂ?
  14. ਗਾਰਡ ਜਾਂ ਮਿਡਲਵੇਅਰ ਦੀ ਵਰਤੋਂ ਕਰੋ, ਜਿਵੇਂ , ਤੁਹਾਡੇ SSE ਅੰਤਮ ਬਿੰਦੂਆਂ ਲਈ ਪ੍ਰਮਾਣਿਕਤਾ ਅਤੇ ਪ੍ਰਮਾਣੀਕਰਨ ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ।
  15. ਕੀ SSE ਗੈਰ-ਬ੍ਰਾਊਜ਼ਰ ਗਾਹਕਾਂ ਨਾਲ ਕੰਮ ਕਰ ਸਕਦਾ ਹੈ?
  16. ਹਾਂ, ਕੋਈ ਵੀ ਕਲਾਇੰਟ ਜੋ HTTP ਅਤੇ ਇਵੈਂਟ ਸਟ੍ਰੀਮਿੰਗ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ (ਉਦਾਹਰਨ ਲਈ, Node.js, cURL) SSE ਸਟ੍ਰੀਮ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦਾ ਹੈ।
  17. ਗਾਹਕਾਂ ਦੀ ਵੱਧ ਤੋਂ ਵੱਧ ਗਿਣਤੀ ਕਿੰਨੀ ਹੈ ਜੋ ਇੱਕ SSE ਅੰਤਮ ਬਿੰਦੂ ਨਾਲ ਜੁੜ ਸਕਦੇ ਹਨ?
  18. ਇਹ ਤੁਹਾਡੇ ਸਰਵਰ ਦੀ ਸੰਰਚਨਾ ਅਤੇ ਸਰੋਤ ਸੀਮਾਵਾਂ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ। ਲੋਡ ਸੰਤੁਲਨ ਅਤੇ ਕਲੱਸਟਰਿੰਗ ਹੋਰ ਗਾਹਕਾਂ ਦਾ ਸਮਰਥਨ ਕਰਨ ਲਈ ਸਕੇਲ ਵਿੱਚ ਮਦਦ ਕਰ ਸਕਦੀ ਹੈ।
  19. ਕੀ SSE ਉੱਤੇ JSON ਡੇਟਾ ਭੇਜਣਾ ਸੰਭਵ ਹੈ?
  20. ਹਾਂ, ਤੁਸੀਂ ਆਬਜੈਕਟਸ ਨੂੰ JSON ਸਟ੍ਰਿੰਗਾਂ ਲਈ ਸੀਰੀਅਲਾਈਜ਼ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਉਹਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਭੇਜ ਸਕਦੇ ਹੋ NestJS ਵਿੱਚ.

ਵਰਤਦੇ ਹੋਏ ਰੀਅਲ-ਟਾਈਮ ਸਿਸਟਮ ਨੂੰ ਲਾਗੂ ਕਰਨਾ NestJS ਵਿੱਚ ਸਰਵਰ ਅਤੇ ਗਾਹਕਾਂ ਵਿਚਕਾਰ ਸੰਚਾਰ ਨੂੰ ਸਰਲ ਬਣਾਉਂਦਾ ਹੈ। ਇਹ ਵਿਧੀ ਨਿਰੰਤਰ ਪੋਲਿੰਗ ਦੇ ਮੁਕਾਬਲੇ ਸਰਵਰ ਲੋਡ ਨੂੰ ਘਟਾਉਂਦੀ ਹੈ ਅਤੇ ਸੂਚਨਾਵਾਂ ਲਈ ਸਟੀਕ ਨਿਸ਼ਾਨਾ ਬਣਾਉਣ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਂਦੀ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਇੱਕ HR ਟੂਲ ਵਿਕਰੀ ਵਿੱਚ 200 ਕਰਮਚਾਰੀਆਂ ਨੂੰ ਬਿਨਾਂ ਕਿਸੇ ਰੁਕਾਵਟ ਦੇ ਨਵੇਂ ਵਾਊਚਰ ਬਾਰੇ ਸੂਚਿਤ ਕਰ ਸਕਦਾ ਹੈ। 🎯

BullMQ ਅਤੇ Prisma ਵਰਗੇ ਟੂਲਸ ਦੇ ਨਾਲ, ਇਹ ਸੈੱਟਅੱਪ ਅਸਿੰਕ੍ਰੋਨਸ ਟਾਸਕ ਪ੍ਰੋਸੈਸਿੰਗ ਅਤੇ ਕੁਸ਼ਲ ਡਾਟਾਬੇਸ ਓਪਰੇਸ਼ਨਾਂ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ। ਇਵੈਂਟ-ਆਧਾਰਿਤ ਆਰਕੀਟੈਕਚਰ ਦੀ ਲਚਕਤਾ ਇਸ ਨੂੰ ਵੱਖ-ਵੱਖ ਰੀਅਲ-ਟਾਈਮ ਲੋੜਾਂ ਲਈ ਇੱਕ ਸਕੇਲੇਬਲ ਹੱਲ ਬਣਾਉਂਦੀ ਹੈ, ਉਪਭੋਗਤਾ ਦੀ ਸ਼ਮੂਲੀਅਤ ਅਤੇ ਸਿਸਟਮ ਭਰੋਸੇਯੋਗਤਾ ਨੂੰ ਵਧਾਉਂਦੀ ਹੈ।

  1. 'ਤੇ ਵਿਸਤ੍ਰਿਤ ਦਸਤਾਵੇਜ਼ NestJS ਫਰੇਮਵਰਕ ਸਕੇਲੇਬਲ ਸਰਵਰ-ਸਾਈਡ ਐਪਲੀਕੇਸ਼ਨ ਬਣਾਉਣ ਲਈ।
  2. ਵਰਤਣ ਲਈ ਗਾਈਡ BullMQ Node.js ਐਪਲੀਕੇਸ਼ਨਾਂ ਵਿੱਚ ਮਜ਼ਬੂਤ ​​ਨੌਕਰੀ ਕਤਾਰ ਪ੍ਰਬੰਧਨ ਲਈ।
  3. ਅਧਿਕਾਰੀ ਪ੍ਰਿਜ਼ਮਾ ਦਸਤਾਵੇਜ਼ੀ ਡਾਟਾਬੇਸ ਕਾਰਵਾਈਆਂ ਅਤੇ ORM ਵਰਤੋਂ ਲਈ।
  4. ਇਨਸਾਈਟਸ 'ਤੇ ਸਰਵਰ ਦੁਆਰਾ ਭੇਜੇ ਗਏ ਇਵੈਂਟਸ (SSE) ਰੀਅਲ-ਟਾਈਮ ਕਲਾਇੰਟ-ਸਰਵਰ ਸੰਚਾਰ ਲਈ।
  5. ਤੋਂ ਵਿਹਾਰਕ ਫਰੰਟਐਂਡ ਲਾਗੂ ਕਰਨ ਦੀਆਂ ਉਦਾਹਰਣਾਂ ReactJS ਦਸਤਾਵੇਜ਼ ਇੰਟਰਐਕਟਿਵ ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਬਣਾਉਣ ਲਈ।