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

19年9月18日(Wed) 8時55分
TOP » xpWiki::Dev » xpWiki開発日記 » 2008-05-14

Wed 14 May 2008
 

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




Post a new comment

Subject
guestname
Body

Go to richer form

Front page   Edit Freeze Diff Backup Upload Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom) Powered by xpWiki
Counter: 2410, today: 1, yesterday: 0
Princeps date: 2008-05-16 (Fri) 23:21:01
Last-modified: 2008-05-16 (Fri) 23:21:01 (JST) (4141d) by nao-pon
このページのTopへ
ログイン
ユーザ名:

パスワード:

オートログイン

Basic 認証

Register now! | Lost Password?



メインメニュー
付箋機能 (xpwiki)
Fusen(Tag) menu 
Tag Editor
Color: BG:
Name:  Connect line ID:
 
MenuBar (xpwiki)
ブックマーク
Please log in to use it.
[Login]
サイト内 Wiki
☆ 検索 ☆



高度な検索(サイト内)
FireFox検索プラグイン
オンライン状況
合計 38 人がオンライン中 :-)
(xpWiki::Dev : 1 人)

登録ユーザ: 0 & ゲスト: 38

もっと...
サイト情報
管理人

nao-pon
 

登録ユーザ数: 4614


Web Services by Yahoo! JAPAN
楽天ウェブサービスセンター
Amazon.co.jpアソシエイト
現在ページのQRコード
現在ページのQRコード
[携帯対応]
参照元情報