node-cron менен тапшырмаларды жана фондук иштерди пландоо
Суроо-талапты күтпөстөн, кайталануучу ишти жадыбал боюнча иштетиңиз
node-cron китепканасы ошол саатты тааныш cron сабы менен сүрөттөп, ага иштетүүчү функция берүүгө мүмкүндүк берет.
- беш талаалуу cron туюнтмаларын окуй жана жаза аласыз;
node-cronменен тапшырманы пландап, ишке киргизип, токтотосуз;- жай тапшырманын кайталанган иштешин жөнөкөй кулпу желекчеси менен токтотосуз;
- пландалган иш эмне үчүн суроо-талап иштеткичтеринен тышкары болушу керектигин түшүндүрөсүз;
- иштеп жаткан Express API'ге чыныгы түнкү тазалоо тапшырмасын кошосуз.
1. Пландалган иш эмне үчүн керек
Сиздин API өмүрүнүн көбүн реакция кылуу менен өткөрөт: суроо-талап келет, сиз иштеткичти иштетесиз, жооп жөнөтөсүз. Бирок көптөгөн маанилүү иштердин артында суроо-талап жок. Кечээги убактылуу файлдарды өчүрүү үчүн эч ким URL'га кирбейт. Эртең мененки саат 8деги корутунду катын жиберүү үчүн эч ким баскычты баспайт. Бул иш жадыбал боюнча болушу керек — программа өзү үчүн жүргүзгөн график боюнча.
Продакшенде кездешүүчү типтүү пландалган тапшырмалар:
- Тазалоолор — сырсөздү калыбына келтирүү токендерин өчүрүү, эски логдорду кыскартуу, таштандылап калган жүктөөлөрдү жоюу.
- Отчёттор — түнкү сатуу корутундусун түзүп, аны командага почта менен жиберүү.
- Эскертүүлөр — сынамык мөөнөтү эртең бүтө турган колдонуучуларга кабарлоо.
- Сурамжылоо — ар бир нече мүнөттө төлөм провайдеринен кийинкиге калтырылган төлөмдөр өткөнбү деп суроо.
Салыштыруу. Имараттын кароолчусун элестетиңиз. Коноктор (суроо-талаптар) күнү бою келип-кетишет, ал эми ресепшендеги кызматкерлер (сиздин маршрут иштеткичтериңиз) аларга кызмат кылышат. Бирок кароолчу эч ким сурабаган график боюнча иштейт: ар түнү таштандыны чыгаруу, ар эртең казанды текшерүү, дүйшөмбүлөрдө гүлдөрдү сугаруу. Пландалган тапшырмалар — бул сиздин сервериңиздин кароолчусу: тынч, туруктуу жана алмаштыргыс.
Unix системаларында бул графиктин классикалык аты бар: cron — белгиленген убакта командаларды иштеткен фондук демон. node-cron ошол эле идеяны сиздин Node процессиңиздин ичине киргизип, тиркемеден чыкпастан жана операциялык системанын конфигурациясын жазбастан JavaScript функцияларын пландоого мүмкүндүк берет.