0

記事 (または記事のコレクション) を PDF にレンダリングするために、Mediawiki Collection Extension と mwlib をインストールしました。これは、単一の記事と最大 20 の記事を含むコレクションで非常にうまく機能します。

大きなコレクションをレンダリングすると、解析ページのパーセンテージ カウンター (レンダリングが成功すると 100% になる) が 1% のままになります。

mwrender.log を見ると、Error 32 - Pipe Broken エラーが表示されます。インターネットで検索すると、エラー 32 は、受信プロセス (パイプの後の部分) がクラッシュするか、応答しないことが原因であることがわかります。

ここから先はなかなか進みません。さらに手がかりはどこで探すべきですか? 死んだのは MySQL サーバーへの接続でしょうか?

アプライアンス全体は、ターンキー Linux Mediawiki VM で実行されます。

4

2 に答える 2

0

私は自分で問題を理解しました。

Mw-renderは、コレクション内のすべての記事に対して並列リクエストを生成します。これは、50ページのコレクションに対して、50の同時リクエストが行われることを意味します。Apacheはこれを処理できましたが、MediaWikiのMySQLデータベースは処理できませんでした。

--num-threads = NUM​​オプションを使用して、mw-renderが生成するスレッドの量を制限できます。mw-serveがmw-renderを呼び出す場所が見つからなかったため、Apacheが生成できるスレッド(ワーカー)の最大数を10に制限しました。

mw-renderは、最初の記事が失敗した場合に記事のリクエストを自動的に繰り返すため、このアプローチは機能しました。

4分以内に185の記事を含むPDFをレンダリングしたところ、結果のPDFには300ページ以上が含まれていました。

于 2010-12-10T08:03:42.543 に答える
0

PDF Export Extensionを使用していますが、20 以上の記事で動作します。多分それを試してみてください?

于 2010-12-08T15:47:40.470 に答える