文書の挿入と更新時にCPFを作成しました。これらのCPFパイプラインは、さまざまなタスクを実行するために複数のxdmp:spawn-tasksを作成します。私はこのアプローチにいくつかの質問があります。MarkLogicのCPFとタスクサーバー8
- 生成されたタスクの中には、元のドキュメントを変更するものがあります。これにより、CPFの更新ワークフローがトリガーされますか?ドキュメント上で、それが生成されたタスクからの更新であることを示すフラグを使用できます。しかし、これを行うよりエレガントな方法はありますか?
- デッドロックについて心配する必要はありますか?つまり、同じCPFから作成された2つのタスクが同じドキュメントを同じ時刻に更新しようとしたら、どうすればこの問題を回避できますか?
基本的には、挿入したドキュメントに封筒パターンを使用して、すべてのアーティファクトドキュメントを1つのドキュメントにまとめようとしています。私がこのアーティファクト文書を生成するためにCPFを使用しているのは、カスタムのRESTエンドポイントを使用する代わりに、MLCPやその他の方法でデータベースに文書をダンプして、CPFに処理を心配させて、カスタムRESTエンドポイント。
なぜ最初に明示的にスポーンを使用していますか?個々のパイプラインの手順として作業を実行し、CPFにオーケストレーションを任せてみませんか?あなたの説明からあなたが達成しようとしていることは不明です。 –
私はもともとCPFタスクで自分自身をやっていましたが、私はこれを行うと、時々メモリ例外から外れています。これは、「xdmp:document-filter」を使って文書からテキストを抽出するものです。しかし、タスクサーバーを使用して、私は何も得られなかったので、タスクの産卵..そして、私は元のドキュメントのサイズが問題だと思っていません..メモリの私の初期の仮定リリースされていないか何か...しかし、 – Ravi
xdmp:document-filterはストリーミング結果を許可するので、必ずしも多くのメモリを消費する必要はありません。フィルタリングは重い処理になる可能性があります。他の詳細を共有し、なぜメモリ例外が発生するのか尋ねるには、別の質問を開く価値があるかもしれません.. – grtjn