問題タブ [dataflow]
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.
c# - 明白な BufferBlock.Post/Receive/ReceiveAsync レース/バグ
http://social.msdn.microsoft.com/Forums/en-US/tpldataflow/thread/89b3f71d-3777-4fad-9c11-50d8dc81a4a9に相互投稿
私は知っています...私はTplDataflowを最大限に活用していません。ATMBufferBlock
プロデューサーとコンシューマーが異なる速度で実行されているメッセージ パッシング用の安全なキューとして使用しているだけです。どうすればよいのか途方に暮れる奇妙な動作が見られます。
上記のコード (2000 行の分散ソリューションの一部) では、約Send
100 ミリ秒ごとに定期的に呼び出されています。これは、アイテムが1 秒間に約 10 回Post
編集されることを意味します。messageQueue
これは確認済みです。ただし、ReceiveAsync
タイムアウト内に が完了せず (つまり が完了しない)、30 秒後にPost
発生する場合があります。この時点で数百に上ります。これは予想外です。この問題は、投稿速度が遅い場合 (1 投稿/秒) にも見られ、通常、1000 個のアイテムが を通過する前に発生します。ReceiveAsync
TimeoutException
messageQueue.Count
BufferBlock
したがって、この問題を回避するために、次のコードを使用しています。これは機能しますが、受信時に 1 秒の遅延が発生することがあります (上記のバグが発生するため)。
BufferBlock
これは私には TDF の競合状態のように見えますが、同様の方法で使用する他の場所でこれが発生しない理由を突き止めることはできません。実験的に からReceiveAsync
に変更しReceive
ても役に立ちません。私は確認していませんが、上記のコードは完全に機能すると思います。これは、「TPL データフローの概要」tpldataflow.docxに記載されているパターンです。
この問題の根底にたどり着くにはどうすればよいですか?何が起こっているかを推測するのに役立つメトリクスはありますか? 信頼できるテスト ケースを作成できない場合、他にどのような情報を提供できますか?
ヘルプ!
java - Java を使用してデータ フロー図を作成する方法
私は工学部の学生です。データフローグラフを勉強しました。Antlrでパーサーは作ったのですが、データフロー図の作り方がわかりません。Java を使用してデータフロー グラフを作成できるという論文を読みました。私を助けてください。
jdbc - DDの異常、およびデータベースリソースのクリーンアップ:クリーンなソリューションはありますか?
これが私たち全員が書いたコードの一部です:
'finally'ブロックを省略すると、データベースリソースがぶら下がったままになります。これは、明らかに潜在的な問題です。ただし、ここで行ったことを実行した場合(** try **ブロックの外側でResultSetをnullに設定してから、ブロック内の目的の値に設定した場合)、PMDは「DD異常」を報告します。ドキュメントでは、DDの異常は次のように説明されています。
DataflowAnomalyAnalysis:データフロー分析は、ローカル定義、未定義、およびデータフロー上のさまざまなパス上の変数への参照を追跡します。これらの情報から、さまざまな問題を見つけることができます。[...] DD-異常:最近定義された変数が再定義されました。これは不吉ですが、バグである必要はありません。
値を設定せずにブロックの外でResultSetを宣言すると、if(records!= null)テストを実行したときに、「変数が初期化されていない可能性があります」というエラーが正しく発生します。
さて、私の意見では、ここでの私の使用はバグではありません。しかし、PMD警告をトリガーしないクリーンに書き換える方法はありますか?URとDUの異常を特定することは実際に役立つので、PMDのDataFlowAnomalyAnalysisルールを特に無効にしたくありません。しかし、これらのDDの異常により、私はもっと良いことをしているのではないかと思うようになります。これを行うためのより良い方法がない場合は、混乱することになります(PMDルールを書き直すことができるかどうかを確認する必要があります)。
groovy - DataFlow 変数を 1 回しか割り当てられない理由
最近、GPars(Groovy Parallel System) ライブラリを調査していて、DataFlow 変数に出会いました。ドキュメントには、Dataflow 変数は 1 回しか割り当てることができないと書かれています。ただし、この制限の理由を見つけることができませんでした。
GPars の Dataflow 変数が 1 回だけ割り当てられる理由を誰か教えてもらえますか?
php - Magento データフロー:行を処理する前にアクションを 1 回呼び出す方法
コンテキスト: Magento 1.7.0.0 バージョン。Magento データフローの高度なプロファイルを使用して、csv データをインポートする必要があります。Mage_Dataflow_Model_Convert_Adapter_Abstract を実装するアダプターを作成しました。各行を処理するための saveRow() メソッドを実装しました。
次のステップ:行が処理される前にいくつかのコードを実行したい: save() または beforeSave() メソッドのようなもの...どうすればできますか?
Mage_Dataflow_Model_Convert_Adapter_Abstract から save() メソッドを実装し、インポート プロファイルの Actions XML セクションに何かを追加する必要があると思います。
どんな提案でも大歓迎です、ありがとう!:)
c# - 非同期アクションを処理するTPLデータフロー
TPLデータフローと新しい非同期機能を使用するために、古いソケットコードを移植して、TPLデータフローを試しています。APIは堅実に感じられますが、私のコードはそれでも厄介な感じになります。ここで何かが足りないのではないかと思います。
私の要件は次のとおりです。ソケットクラスは、Open、Close、Send、Receiveメソッドを公開します。すべてがタスクを返すため、非同期です。開くと閉じるはアトミックです。送信と受信は互いに隣接して機能しますが、どちらも一度に1つのコマンドしか処理できません。
論理的には、これにより、内部統制の次のコードに進みます。
これまでのところすべて良い。その間に接続関連のアクションが実行されていることを心配することなく、SendandReceiveブロックにアクションを安全に送信できます。また、ActionBlockは、送信する複数の呼び出しが同期されることを保証します(受信、クローズ、およびオープンの理想)。
問題は、アクションがタスクを投稿者に伝える簡単な方法がないことです。現在、TaskCompletionSourceを使用して結果を返しています。好き:
醜くて不器用な感じがします。私の質問は次のとおりです。TPLを使用してワークフローを同期する方法はありますか?その間の通信にTaskCompletionSourceを使用する必要はありませんか?
ありがとう!
ssis - データフロータスクのエラー出力でより多くの情報をキャプチャします
SSISパッケージを作成しました
データフロータスクでは、列がほとんどありません
ここで、意図的にエラーを作成するために、
列0と列3のデータ型をintに変換しています。
これで、エラーを次のように構成しました。
その後、データビューアを保持してパッケージを実行しましたが、予想どおりのエラー出力が得られました。
あと3列あることがわかります
しかし、私の質問は次のとおりです。
- エラー列は101および73として表示されます。適切な列名を取得するにはどうすればよいですか?
- 同じエラー出力テーブルに他の情報(パッケージID、パッケージ名など)を追加するにはどうすればよいですか?
performance - Magento データフローが CSV ファイルの読み込みに時間がかかりすぎる
更新するインベントリ データを含む大きな CSV ファイルがあります (35,000 行以上)。インベントリの更新を行うために Mage_Catalog_Model_Convert_Adapter_Productimport を拡張するメソッドを作成しました。次に、高度なプロファイルを使用して、そのメソッドを呼び出す更新を行いました。
プロファイルを手動で実行すると、非常にうまく機能します。問題は、cronjob で実行されているプロファイルを処理する拡張機能を使用すると、システムが CSV ファイルを読み込んで解析するのに時間がかかりすぎることです。cronjob を毎日午前 6 時 15 分に実行するように設定しましたが、ファイルの最初の行は同じ日の午後 1 時 20 分まで処理されず、ファイルの読み込みに 7 時間かかります。
これにより、プロセスが途中で停止し、処理中のレコードが 1/3 未満になります。理由を理解しようとして、問題を解決しようとしていらいらしましたが、うまくいきませんでした。
どんなアイデアでも大歓迎です。
oledb - NoobのSSISデータフロー
私はまだプログラミングに非常に慣れていないので、私たちの地元のSSISの天才は、私が彼の頭脳を選ぶために今日ここにいません。
私は既存のSSISパッケージに取り組んでおり、特定の.dtsxファイルに変更を加えています。データフローにはOLEDBソースがあり、プロジェクトの仕様に合わせてSQLクエリを正常に変更しました。Destinationは接続フラットファイルであり、新しいクエリに合うように列マッピングを変更しました。
私はいくつかの懸念があります:
ソース接続は元々SQLServer認証を使用していましたが、ユーザー名またはパスワードがありません。Windows認証を使用してローカルでテストできますが、最終的には、サーバー上のスケジュールされたタスクとして他の誰かによって設定されます。(これはおそらく私の職場の人々にとっての質問だと思いますが、私はあなたたちを埋めると思いました)。
宛先プレビューには何も表示されません。ただし、ソースクエリを正常に解析およびプレビューすることはできます...
また、ソースエディタでの「エラー出力」の意味もわかりません。
これはすでに正しく設定されていますか、それとも出力にエラーがあることを意味しますか?
説明や詳細は役に立ちますが、私の全体的な質問は、「この.dtsxに何かが足りないのか、それともこのプロジェクトが終了してスケジュールされたタスクとして設定する準備ができているのか」です。
sql-server - SSISルックアップ、一致しない出力用の新しいレコードを作成し、新しく生成されたキーを取得します
ホテルのテーブルがあります。
今、私はいくつかのフィードを取得します。これHotelNames
で、ビジネスロジックはHotel_ID
既存のHotelNameに使用され、HotelNameに新しいレコードを作成します。これは、新しく生成されたHotel_IDを使用します。これで、「Lookup NoMatchOutput」をOLEDBコマンド変換に送信できることを理解しましたが、次に、新しく生成されたキーを取得する方法を理解しました。1つのオプションは、DimHotelテーブルでもう一度ルックアップを実行することです(これはばかげていると思います。テーブルを2回スキャンします)。他にどのようなオプションがありますか。
私はMergeステートメントを使用できますが、ETLチームは手動コーディングを避けたいと考えています。