nodejsのcron人を造ること


この記事では、私たちはどのようにセットアップをnodejs cronジョブを学ぶつもりです、私たちのcronは私たちのデータベースコレクションを検索し、冗長なユーザーを削除します.我々は我々の目的の目標を達成するいくつかのnodejs APIを見るつもりです.

何がcronの仕事ですか?


cronjobは指定された時間に定期的に実行され、指定されたタスクを実行するプログラムです.あなたはそれをボットと考えるかもしれません.あなたは今日、あなたのプラットホームでサインアップされたすべてにニュースレターを送信したいと思いました、あなたはあなたのアプリケーションがアップデートのために使用するもう一つのサービスをチェックして、それから、あなた自身のサービスを正しく更新したいです.あなたはcronjobで何かを行うことができます.畝

わかりました、なぜ私はcronjobが必要ですか?


あなたは、データベースと連携している間、あなたのアプリケーションのユーザがあなたのデータベースまたはクラウドストレージバケットに必要としないファイルをアップロードしたり保存したりすることに気づくかもしれません.あなたのcronjobは時折あなたの記憶システムをチェックして、これらの冗長なファイルを見つけて、あなたの望ましい指示を実行します.あなたはとにかくデータベースに限定されません、あなたはちょうどどこにでもこれを実行することができます.
cron manやmanagerはcronjobをすべて処理します.これは、すべてのcronjobが同じファイルから管理されることを意味します.

レディ?さあ始めましょう


私は既に機能的なビューとモデルを既に持っていると仮定しますので、我々はすぐにcronマネージャに得ることができます.
cronjobランナーを3つの部分に構成します.
  • スケジューラ
  • 行動
  • クーン人
  • スケジューラ
    スケジューラは2パラメータ、ミリ秒の時間間隔と実行するアクションを取る.

    行動


    この関数は、scheduler , この関数は、スケジューラが呼び出すたびに行う必要のある論理を持ちます.それはあなたの行動を純粋にすることが重要です.純粋な関数を使用すると、メモリリークや副作用をチェックするのに役立ちます.畝

    クーン人


    cronマネージャはすべてのスケジューラをブートストラップして管理します.我々は、単に我々のスケジューラ機能と行動をここで輸入します.これはデバッグのために重要です、そして、より多くのように、それは我々のcronをモジュラーにします.
    cronマネージャー
    私たちが概念的に我々のcronプログラムを説明したので、コードレベルに入りましょう.あなたのプロジェクトでcronディレクトリを作成してくださいcron-jobs & scheduler ) とcronMan.js ファイル.
    フォルダ構造
    我々は、スケジューラ機能をはずして起動します.次のようになります.
    < div >
    私たちのスケジューラは2つの重要な部分を必要とします.The setInterval() タイマーAPIとprocess.nextTick() nodejsからのAPI.タイマーAPIの詳細についてはdocumentation . The setInterval() 時間とアクションを一度、提供されている時間が経過した呼び出しにかかる.シュウ


    < p >process.nextTick() NodeJSイベントループの現在のジョブが完了すると、スケジューラ関数が呼び出されることを保証します.これは他のI/Oイベントの前に呼び出されます.これは私たちのプログラムのライフサイクルにフックし、我々のcronジョブを注入するための良い方法です.シュウ


    これによって書かれた美しい記事があります.チェックアウトしてください.Events and Timers in Node.js . また、公式ドキュメントを見ることができますprocess.nextTick(callback[,…args])


    建築を続けましょう、今、私たちはactions . あなたは、我々が我々のディレクトリを指定した方法に気がつきますcron-jobs , これは、我々が1つ以上の仕事を持つことができて、彼らの間で一緒に彼らを家に置くことができることを意味しますcron-jobs ディレクトリ名p >
    この例では、セットアップを行いますdeleteInactives cronjobこれは、我々のデータベースを検索し、すべての現在アクティブなユーザーを削除します.< br/>
    現実世界のアプリケーションでは、ユーザーを削除する必要はありませんが、彼らが持っている冗長なファイルは、写真、ビデオ、PDFファイルのように、ユーザーによって保存されていないが、データベースにアップロードされたようなものです.p >
    私たちの例のアプリでは、すべてのユーザーに24時間のアカウントをアクティブにする、この時間満了時に、すべての不活発なアカウントを削除します.さあ、コードを書きましょう.p >
    < div class ="LagagCount - gig - Link - tag "
    "スクリプトのID "https://gist.github.com/phavor/43fefe1e67898187620916725f06a4fd.js//>
    < div >
    私たちのdeleteInactive 上記のユーザ関数はisActive プロパティはfalse .


    < tt > cron managerファイルを開きましょうcronMan.js ファイルと書き込みのコード
    < div class ="LagagCount - gig - Link - tag "
    "スクリプトのID "https://gist.github.com/phavor/93f0e583b42fed9c6aa4da08b30988ed.js//>
    < div >
    私たちが今しなければならないのは、cronmanを注入することです.我々のアプリにJSファイル.インサイドインデックス.JSは、我々はcronMan 以下のような行1のファイル:< br/>
    <> P >
    クラスをハイライト表示する
    require("./cron-man/cronMan");
    
    < div >
    <高橋>p >
    < P >


    現在のところ、我々の予定の仕事はすべて走ります10000 ミリ秒で、アプリケーションの必要に応じてタイマーを設定します.p >
    < P > <フィギュア< br/> <フィギュア>>ロック< file caption/> <数字>
    <> P >
    あなたはそれを持っている.あなたの最初のcronジョブを正常に設定している.それは簡単だった?今すぐ行って、世界をあなたのcron男を救う🚀🚀🚀