hypweb.net
XOOPSマニア  最新情報のRSS(サイト全体)
[ 自宅サーバーWebRing |ID=54 前後5表示乱移動サイト一覧 ]

TOP » xpwiki » xpWiki開発日記 » 2008-05-14 のバックアップ差分(No.1)
1: 2008-05-16 (金) 23:21:01 nao-pon ソース バックアップ No.1 を復元して編集
Line 1: Line 1:
 +#navi(../)
 +* Ver 3.71.26 - 27 (ゲートウェイ"jobstack"の追加 と flock:LOCK_UN 問題の修正) [#uaace787]
 +
 +&tag(基本設計,JobStack,ファイルロック,JobStack);
 +
 +** 概要 [#s269f8d4]
 +
 +- バックグラウンド処理を逐次実行するゲートウェイ "jobstack" を追加した。
 +- ゲートウェイ "bgrun" を廃止した。
 +- fclose($fp) をする前に flock($fp, LOCK_UN) をすべきではないので、その修正をした。
 +
 +** ゲートウェイ"jobstack"の追加 [#vb0dc2b8]
 +
 +バックグラウンド処理を登録し、アクセスがある度に一件ずつバックグラウンドで処理をする仕組みを新たに追加しました。
 +
 +それに、伴い ゲートウェイ "bgrun" を "jobstack" に統合しました。
 +
 +プラグインを作成する時の参考となりますので、簡単に説明しておきます。
 +
 +現状で、jobstack には、任意のHTTPアクセス(GETリクエスト)を行う "http_get" と ページ更新後の重い処理(plainDB 更新) を行う "plain_up" があります。
 +
 +実際にジョブを登録するには、$this->func->regist_jobstack($data, $ttl) とします。 $data は、連想配列で例えば次のように指定します。
 +
 +#code(php){{
 +$data['action'] = 'http_get'; 
 +$data['url'] = 'http://〜';
 +}}
 +
 +$ttl は整数値で、そのジョブが実行される有効期限を秒数で指定します。省略可能で省略時の値は 864000 (10日間) です。
 +
 +"http_get" アクションは、アクションプラグインを呼び出し、各種処理を行ったりすることに利用できます。
 +
 +"plain_up" アクションは、内部的に func->need_update_plaindb() 内で使われています。プラグインでのコンバート時、plainDB のリフレッシュを行いたい場合は、$this->func->need_update_plaindb($page) とすればOKです。$page は省略可能で省略時の値は $this->root->vars['page'] の値となります。
 +
 +** flock:LOCK_UN 問題の修正 [#wab6afb2]
 +
 +pukiwiki.dev の [[pukiwiki.dev:BugTrack2/306]] に上がっていた問題です。
 +
 +fopen() でオープンし flock() でファイルロックを掛けた後、fclose() の前に flock() でアンロックすると、バッファに溜まっているデータがフラッシュされる前だとファイルが壊れることがあるという問題です。
 +
 +自分なりに簡単に調べてみたところ、確かにそのようでしたので、その修正を行いました。
 +
 +** CVS 更新内容 [#x01525bb]
 +#region(今回の更新分){{
 +-2008-05-14 16:17  nao-pon
 +--* xoops_version.php (1.342):
 +---Version 3.71.27
 +-2008-05-14 16:16  nao-pon
 +--* class/attach.php (1.3), class/func/pukiwiki_func.php (1.167),
 +plugin/ajaxtree.inc.php (1.8), plugin/code.inc.php (1.19),
 +plugin/counter.inc.php (1.6), plugin/dump.inc.php (1.7),
 +plugin/fusen.inc.php (1.24), plugin/online.inc.php (1.2),
 +plugin/tb.inc.php (1.2):
 +---"flock($fp, LOCK_UN)" is needless before "fclose($fp)".
 +-2008-05-14 14:08  nao-pon
 +--* ways/jobstack.php (1.2):
 +---Changed "error_reporting" from "E_ALL" to "0". (include ver
 +3.71.26)
 +-2008-05-14 14:00  nao-pon
 +--* class/func/xpwiki_func.php (1.166):
 +---Added runtime flag "root->rtf['plaindb_up_now']".
 +-2008-05-14 13:31  nao-pon
 +--* xoops_version.php (1.341):
 +---Version 3.71.26
 +-2008-05-14 13:28  nao-pon
 +--* plugin/: aws.inc.php (1.4), isbn.inc.php (1.8), showrss.inc.php
 +(1.9):
 +---Call function "need_update_plaindb()" on data update.
 +-2008-05-14 13:27  nao-pon
 +--* ways/bgrun.php (1.7), ways/jobstack.php (1.1), class/xpwiki.php
 +(1.82), class/func/xpwiki_func.php (1.165), class/include/init.php
 +(1.50), ini/pukiwiki.ini.php (1.74):
 +---Added a gateway "jobstack" and remove "bgrun".
 +}}
 +
 +** 一行コメント [#y85268d3]
 +#comment
 +
 +#navi(../)


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 283, today: 1, yesterday: 0
このページのTopへ
メインメニュー
ログイン

ユーザー名:


パスワード:





パスワード紛失  |新規登録
オンライン状況
475 人のユーザが現在オンラインです。 (7 人のユーザが xpwiki を参照しています。)

登録ユーザ: 0
ゲスト: 475

もっと...
サイト情報