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

TOP » xpwiki » xpWiki開発日記 » 2008-05-14

2008 5月 14 (水)
 

Ver 3.71.26 - 27 (ゲートウェイ"jobstack"の追加 と flock:LOCK_UN 問題の修正) anchor.png Edit

Tag: 基本設計 JobStack ファイルロック

Page Top

概要 anchor.png Edit

  • バックグラウンド処理を逐次実行するゲートウェイ "jobstack" を追加した。
  • ゲートウェイ "bgrun" を廃止した。
  • fclose($fp) をする前に flock($fp, LOCK_UN) をすべきではないので、その修正をした。
Page Top

ゲートウェイ"jobstack"の追加 anchor.png Edit

バックグラウンド処理を登録し、アクセスがある度に一件ずつバックグラウンドで処理をする仕組みを新たに追加しました。

それに、伴い ゲートウェイ "bgrun" を "jobstack" に統合しました。

プラグインを作成する時の参考となりますので、簡単に説明しておきます。

現状で、jobstack には、任意のHTTPアクセス(GETリクエスト)を行う "http_get" と ページ更新後の重い処理(plainDB 更新) を行う "plain_up" があります。

実際にジョブを登録するには、$this->func->regist_jobstack($data, $ttl) とします。 $data は、連想配列で例えば次のように指定します。

1
2
$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'] の値となります。

Page Top

flock:LOCK_UN 問題の修正 anchor.png Edit

pukiwiki.devpukiwiki.dev:BugTrack2/306 に上がっていた問題です。

fopen() でオープンし flock() でファイルロックを掛けた後、fclose() の前に flock() でアンロックすると、バッファに溜まっているデータがフラッシュされる前だとファイルが壊れることがあるという問題です。

自分なりに簡単に調べてみたところ、確かにそのようでしたので、その修正を行いました。

Page Top

CVS 更新内容 anchor.png Edit

+  今回の更新分
  • 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".
Page Top

一行コメント anchor.png Edit




トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 281, today: 1, yesterday: 0
初版日時: 2008-05-16 (金) 23:21:01
最終更新: 2008-05-16 (金) 23:21:01 (JST) (5816d) by nao-pon
このページのTopへ
メインメニュー
ログイン

ユーザー名:


パスワード:





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

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

もっと...
サイト情報