ノードに外部ファイルをロードすることに関して質問があります。
基本的に、いくつかの構成を含む外部 JSON ファイルをロードしています。このファイルは、10 分ごとに外部プロセスによって変更されます。ノードを再起動せずに、このファイルを 10 分ごとにリロードするにはどうすればよいですか?
私はこの解決策を試しました:
delete require.cache['/home/conf/myfile.json']
しかし、反対する人もいます。誰でも私を助けることができますか?
ノードに外部ファイルをロードすることに関して質問があります。
基本的に、いくつかの構成を含む外部 JSON ファイルをロードしています。このファイルは、10 分ごとに外部プロセスによって変更されます。ノードを再起動せずに、このファイルを 10 分ごとにリロードするにはどうすればよいですか?
私はこの解決策を試しました:
delete require.cache['/home/conf/myfile.json']
しかし、反対する人もいます。誰でも私を助けることができますか?
最後にコードを変更し、require を使用する代わりに fs.readFile を使用して json ファイルをロードするようになりました。
次に、node-watchを使用してファイルの変更を確認し、再読み込みしました。
カップルのオプション。setIntervalを 10 分間使用して、コールバックでファイルを読み取ることができます。それ以外の場合は、fs.watchを使用して、ファイルが実際に変更されたときにリロードをトリガーできます。
コメントに基づいて更新
require を使用している場合、必要な回数に関係なく、ファイルは 1 回だけ読み込まれ、必要なファイルを無効にするメカニズムは実際にはありません。機能のラッパーを作成し、代わりにそれを要求することができます。ラッパーは必要なファイルであり、現在の構成を返す関数を公開します。そのモジュール内で、上記の setTimeout refresh を作成できます。