Manual:Job queue/ja

MediaWiki 1.6ではジョブキューが1列取り入れられ、長い処理を非同期的に実行できるようになりました. このジョブキューは、バッチ処理を用いて. 短い処理項目（ジョブ、job）を多数蓄えるように設計されています. 初期設定では、〔HTTP上の？〕要求に1件対処するついでに、ジョブキューから処理項目を1件取り出し、実行します. もし、それではパフォーマンスへの負担が大きすぎるという場合は、LocalSettings.phpに以下のように記入し、$wgJobRunRate 〔要求あたりに処理する件数〕を絞り込むこともできます：

また、$wgJobRunRateを0に設定した後に、コマンドラインからmaintenance/runJobs.php を走らせることでジョブキューをさばくことができます. 例えば以下のようにします.

0 0 * * * /usr/bin/php /var/www/wiki/maintenance/runJobs.php 2>&1 > /var/log/runJobs.log

他のケースとして、主要なテンプレートを改訂した後にジョブが大量にある場合は、以下のコマンドを実行することによってジョブキューを空にすることができます.

cd /var/www/w php ./maintenance/runJobs.php --conf ./LocalSettings.php

テンプレートの改訂にともなうリンクの表の更新
MediaWiki 1.6は、その〔改訂された〕テンプレートを適用している個々のページに1件ずつ処理項目を対応させ、ジョブキューに投入していきます. 各処理項目の内容は、ページを読み通し、あらゆるテンプレートを展開しなおし、それに従って〔データベースの一部である〕リンクの表を更新することです. したがって、時には処理が長大となり完了までにしばらくかかることがあるが、〔強制的に更新させるための〕空の編集操作はもう不要となります. これは、大変な手作業の負担を緩和することに繋がります.

HTMLキャッシュの無効化
大量のページに相当する既存のHTMLキャッシュを一気に無効にしてしまう操作は、〔テンプレートの改訂だけでなく〕より幅広い種類にわたります：
 * 画像の改訂（すべてのサムネイルを作り直し、大きさも再計算する必要があります）
 * ページの削除（すべてのリンク元でのリンクの色を、青から赤にする必要があります）
 * ページの作成、または復帰〔被削除物の回復. undelete. 復活とも〕（上記同様ですが、反対に赤から青にします）
 * テンプレートの改訂（テンプレートの貼り込まれたページ〔のキャッシュ〕をすべて更新する必要があります）

テンプレートの改訂を除くこれらの操作の結果、リンクの表〔の内容〕が無効になることはありませんが、一方で、当該ページのリンク元の、あるいは当該画像の使用先の、すべてのページのHTMLキャッシュが無効になります. 1ページ分のキャッシュを無効にする処理はごく短く、必要なのはデータベースのフィールドを1件更新し、マルチキャストのパケットを1つ発してキャッシュを消すことだけです. しかしそれが1000件以上もある場合には、かなり時間がかかります. 初期設定では、500ページ分以上を無効化する必要のある場合のみ、500ページあたり1件の処理項目が〔ジョブキューに〕発生します.

特徴的な値
低負荷の期間に、ジョブキューはゼロであるかもしれません. Wikimedia でのジョブキューは、実際ほとんどゼロではありません. 混雑していない時間帯では数百から千であるかもしれません. 混雑している日の間では、それは数百万でもあり、１０％以上素早く上下します. MediaWiki 1.16 まで、ジョブキューの長さは Special:Statistics に表示されました. ; 1.17 (75272) からそれは取り除かれて API:Meta で確認することができます.

関連項目

 * ジョブキューの設計変更
 * 開発者のためのジョブキュー