Мазмунга өтүү

Билдирүү кезектери (киришүү)

Сабактын башталышы

Билдирүү кезектери (киришүү)

Кызматтар бири-бирин күтпөй сүйлөшсүн, ал эми бирөө артта калганда система иштей берсин

Негизги идея: билдирүү кезеги — бул иши бар код менен ошол ишти аткарган коддун ортосунда турган буфер. Жай кызматты түз чакырып бөгөттөлүүнүн ордуна, сиз кичине билдирүүнү кезекке салып, андан ары кетесиз. Өзүнчө процесс билдирүүнү кийин алып, аны иштетет. Кезек катуу синхрондуу чакырууну эркин асинхрондуу өткөрүп берүүгө айландырат — ушул бир өзгөрүү сизге ажыратууну, туруктуулукту жана трафиктин чектеринен ашкан жүктөрдү текшилөө мүмкүнчүлүгүн берет.
Аягында сиз төмөнкүлөрдү жасай аласыз:
  • продюсер, брокер жана консьюмер ишти кантип бөлүштүргөнүн түшүндүрө;
  • ажыратуу эмне берерин жана эмнеге турарын так айта;
  • ырастоолорду колдонуп, бузулуу эч качан билдирүүнү унчукпай жоготпошун камсыздай;
  • дайыма кулай берген билдирүүлөр үчүн кайталоолорду жана жеткирилбеген билдирүүлөрдүн кезегин долбоорлой;
  • эң аз дегенде бир жолу жеткирүү жөнүндө жана консьюмерлер эмне үчүн идемпоттуу болушу керектиги жөнүндө ой жүгүртө;
  • кезек качан туура курал экенин — жана качан ашыкча татаалдаштыруу экенин чечо аласыз.

1. Маселе: сизди күттүргөн түз чакыруу

Сиз мисалы колдонуучуну каттаган Express маршрутун кантип түзүүнү мурунтан билесиз. Каттоо ошондой эле миниатюра түзүшү, тосуп алуу катын жөнөтүшү жана аналитика кызматына жазуу жиберүиши керек дейли. Жөнөкөй версия клиентке жооп бергенге чейин мунун баарын ичинде аткарат:

app.post('/register', async (req, res) => {
  const user = await db.createUser(req.body);
  await generateThumbnail(user.avatarUrl);   // 800 ms
  await sendWelcomeEmail(user.email);        // 1200 ms, сырткы SMTP
  await analytics.track('signup', user.id);  // 400 ms, үчүнчү тарап API
  res.json({ ok: true });                    // клиент ~2.4 с күттү
});

Бул жерде үч ката бар. Биринчиден, колдонуучу эки секунддан ашык спиннерге карап турат, бирок бул иштердин эч бири биз «аккаунт түзүлдү» деп айтканга чейин бүтүшү шарт эмес. Экинчиден, эгер почта провайдери жеткиликсиз болсо, бүт сурам кулайт — SMTPдин кыска мезгилдик үзгүлтүгү эми каттоону бузат. Үчүнчүдөн, сурамды иштетүүчү үч байланышы жок системага бекем ширелген; алардын ар биринин өзгөрүүсү каттоо жолун бузушу мүмкүн.

Билдирүү кезеги ишенимдүү фактыны («колдонуучу түзүлдү») жазып, андан кийинки ишти билдирүү катары өткөрүп берүүгө мүмкүндүк берет. Маршрут дароо жооп берет; жай, кулоого жакын иш башка жерде, өз графиги менен, өз кайталоо саясаты менен болот.

Бул сабакты YourAIZone платформасында улантыңыз

Толук сабакта — толук түшүндүрмө, чыгарылган мисалдар, көп кездешкен каталар, заматта текшерилүүчү тесттер жана ЖИ-репетитор. Конок катары дароо баштаңыз же прогрессти сактоо үчүн аккаунт түзүңүз.

Толук сабакта

  • Толук түшүндүрмө
  • Чыгарылган мисалдар
  • Көп кездешкен каталар жана алардан кантип качуу керек
  • Тест суроолору: 15
  • Тема боюнча суроолорго жооп берген ЖИ-репетитор
  • Окуучу, ата-эне жана мугалим үчүн прогрессти көзөмөлдөө