Manual:Job queue/ja
From MediaWiki.org
MediaWiki 1.6ではジョブキューが1列取り入れられ、長い処理を非同期的に実行できるようになった。このジョブキューは、短い処理項目(ジョブ、job)を多数蓄えるように設計されている。ジョブキューの長さを知るには、1.6を使うウィキであれば、例外もあるが Special:Statistics まで見に行けばよい。初期設定では、〔HTTP上の?〕要求に1件対処するついでに、ジョブキューから処理項目を1件取り出し、実行する。もし、それではパフォーマンスへの負担が大きすぎるという場合は、LocalSettings.phpに以下のように記入し、$wgJobRunRate 〔要求あたりに処理する件数〕を絞り込むこともできる:
- $wgJobRunRate = 0.01;
また、コマンドラインからも、maintenance/runJobs.php を走らせることでジョブキューをさばくことができる。
[edit] ジョブキューを設けた理由
[edit] テンプレートの改訂にともなうリンクの表の更新
MediaWiki 1.6は、その〔改訂された〕テンプレートを適用している個々のページに1件ずつ処理項目を対応させ、ジョブキューに投入していく。各処理項目の内容は、ページを読み通し、あらゆるテンプレートを展開しなおし、それに従って〔データベースの一部である〕リンクの表を更新することである。したがって、時には処理が長大となり完了までにしばらくかかることがあるが、〔強制的に更新させるための〕空の編集操作はもう不要となる。これは、大変な手作業の負担を緩和することに繋がるものである。
[edit] HTMLキャッシュの無効化
大量のページに相当する既存のHTMLキャッシュを一気に無効にしてしまう操作は、〔テンプレートの改訂だけでなく〕より幅広い種類にわたる:
- 画像の改訂(すべてのサムネイルを作り直し、大きさも再計算する必要がある)
- ページの削除(すべてのリンク元でのリンクの色を、青から赤にする必要がある)
- ページの作成、または復帰〔被削除物の回復。undelete。復活とも〕(上記同様だが、反対に赤から青にする)
- テンプレートの改訂(テンプレートの貼り込まれたページ〔のキャッシュ〕をすべて更新する必要がある)
テンプレートの改訂を除くこれらの操作の結果、リンクの表〔の内容〕が無効になることはないが、一方で、当該ページのリンク元の、あるいは当該画像の使用先の、すべてのページのHTMLキャッシュが無効になる。1ページ分のキャッシュを無効にする処理はごく短く、必要なのはデータベースのフィールドを1件更新し、マルチキャストのパケットを1つ発してキャッシュを消すことだけである。しかしそれが1000件以上もある場合には、かなり時間がかかる。初期設定では、500ページ分以上を無効化する必要のある場合のみ、500ページあたり1件の処理項目が〔ジョブキューに〕発生する。
| 言語: |
English • Deutsch • Français • 日本語 • Tiếng Việt |