問題タブ [cyclic-dependency]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2285 参照

module - テラフォーム | モジュールに「depends_on」を使用する場合の「適用」段階での循環依存

terraform applyモジュールで使用する場合、段階的に循環依存の問題に苦しんでdepends_onいます。

適用で得たエラーは次のとおりです。

* Cycle: aws_appautoscaling_policy.queue_depth_based_scale_out_policy, module.my_module.aws_ecs_task_definition.task_definition (destroy), aws_appautoscaling_policy.queue_depth_based_scale_in_policy

planステージはまったく問題なく、ステージにエラーはありませんplan

以下のコマンドを使用してグラフ内のサイクルを特定しようとしましたが、

planグラフにサイクルはありません。次に、使用中のサイクルを特定しようとしましたがapply

残念ながら、このコマンドはサイクルをグラフに表示できません。

幸いなことに、apply以下のコマンドを使用してステージ グラフでサイクルを確認できます。

私のグラフのサイクルは次のようになります。

適用段階のサイクルを示すグラフ

とはいえ、グラフのこのサイクルの理由はまだわかりません。

さらに、問題は特にdepends_onモジュールの追加にあるようです。aws_appautoscaling_policy私のモジュールにはすでに依存しているものはほとんどないので、依存するaws_appautoscaling_targetものは依存しaws_ecs_service、最終的には依存しますaws_ecs_task_definitionapply、これは正常に機能します。

aws_appautoscaling_policy特定のアプリに特に関連するものもあるため、個別に (モジュールの一部としてではなく) 追加していますが、自動スケーリング ポリシーは、サービスがスケーラブル ターゲットとして登録された後にのみ追加できるため、モジュールを追加しdepends_onています。aws_appautoscaling_targetモジュールで定義されているので。

モジュールのコードスニペットは次のとおりです。

そして、これがモジュールの使用法です、

パイプラインで実行される手順は次のとおりです。

このサイクルの背後にある理由を知りたいですか?

強調すべきもう 1 つのポイントは、すべてをゼロから再作成するterraform apply場合に成功することです。このサイクルは、タスク定義を行い、モジュールの外部に配置されたスケーリング ポリシーにいくつかの更新があるdestroy場合にのみ観察されます。taint

注: 私のパイプラインでは、以前のタスク定義を汚染して、サービスが新しいタスク定義で即座に開始されるようにします。そうしないと、タスクが新しいタスク定義ですぐにロールアウトされません。

0 投票する
1 に答える
25 参照

c# - Datas-project と Builders-project 間の循環依存関係

達成したいコードは次のとおりです。

  • ACharacterにはstrengthconstitution、およびその他の統計があります。
  • それぞれCharacterBaseStats彼のクラスに依存しています。
  • それぞれCharacterRandomStatsボーナスがあり、正の値は 0 から 3 です。
  • ステータスは 1 未満でも 10 未満でもありません。
  • A の統計に はとCharacterがある場合があります。BonusMalus
  • aCharacterが で 8 を持ちstrength、プラス 4 のボーナスと 1 のマイナスを持っている場合、彼は最終的に 10 を持っています (8+4-1=11 > 10)。
  • a のCharacter体質が 3 で、プラス 1 のボーナスと 4 のマルスがある場合、彼は最終的に 1 になります (3+1-4=0 < 1)。

私の .NET ソリューションでは、datasbuildersを別のプロジェクトに分けようとしています。現在、私のdatasプロジェクトには次のようなものがあります。

次に、builderwhich sum a がありList<EntityStatsます。

私の問題は次のとおりです。

buildersのプロジェクトは私のプロジェクトを参照していdatasます。
エラー:クラスにFinalStatsプロパティを追加したいです。CharacterこれFinalStatsは私のEntityStatsBuilderクラスを使用する必要があります。次に、私のプロジェクトは私のdatasプロジェクトを参照する必要がありますbuilders

この循環的な依存関係を持たないようにするには、グローバル アーキテクチャをどのように変更すればよいですか?

0 投票する
1 に答える
161 参照

angular6 - 解析エラー: アプリ初期化子の循環依存

アプリ初期化子を実装していますが、以下のような循環依存エラーに遭遇しました

キャッチされないエラー: プロバイダー解析エラー: 循環依存関係をインスタンス化できません! ApplicationRef ("[ERROR ->]"): in NgModule AppModule in ./AppModule@-1:-1 at NgModuleProviderAnalyzer.push../node_modules/@angular/compiler/fesm5/compiler.js.NgModuleProviderAnalyzer.parse (compiler. js:11472) で NgModuleCompiler.push../node_modules/@angular/compiler/fesm5/compiler.js.NgModuleCompiler.compile (compiler.js:11836) で JitCompiler.push../node_modules/@angular/compiler/fesm5/ JitCompiler.push../node_modules/@angular/compiler/fesm5/compiler.js の Object.then (compiler.js:1007) の compiler.js:23841 の compiler.js.JitCompiler._compileModule (compiler.js:23882) .JitCompiler._compileModuleAndComponents (compiler.js:23839) JitCompiler.push../node_modules/@angular/compiler/fesm5/compiler.js.JitCompiler. webpack_require @ ブートストラップ:81 0 @ main.ts:12 webpack_require @ ブートストラップ:81 checkDeferredModules @ ブートストラップ:43 webpackJsonpCallback @ ブートストラップ:30 (匿名) @ main.js:1

これは私の初期化子がどのように見えるかです

以下は、NgModuleでサービスを提供する方法です

循環依存エラーが表示される理由がわかりません