現在ブログのポータルサイトを運営しており、各ブログからのRSS取得に「d3pipes」を利用しています。総ブログ数が180件ほどなのですが、1時間に1回のRSS巡回に5~10分ほどかかります。その際にd3pipesの「新着一覧」が一時的に見れなくなります。(恐らく処理中のため表示まで時間がかかる)新着記事の取得中も更新前の記事が表示され、全てのページを読み込み終わってからキャッシュを入れ替えるような方法はないのでしょうか?新着記事ブロックは非同期ブロック、各パイプの表示数は1件です。ブロックでの指定で180件のパイプ指定ができなかったため、テンプレートから直接全パイプを表示するようにしています。7:14引用:現在ブログのポータルサイトを運営しており、各ブログからのRSS取得に「d3pipes」を利用しています。総ブログ数が180件ほどなのですが、1時間に1回のRSS巡回に5~10分ほどかかります。その際にd3pipesの「新着一覧」が一時的に見れなくなります。(恐らく処理中のため表示まで時間がかかる)そりゃそうなりますよ。「新着記事の取得中も更新前の記事が表示され」というのはキャシュだけでは不可能でしょう面白そうな難題だったので、考えてみました。「データベースに保存しているものから表示する方法」http://xodomifara.lolipop.jp/doxo/modules/chalog/?action=BlogView&id=79まあ、これは置いておいて「全てのページを読み込み終わってからキャッシュを入れ替えるような方法はないのでしょうか?」http://xodomifara.lolipop.jp/doxo/modules/chalog/?action=BlogView&id=80意図したように動くのか?数件のデータではわからないのです。こちらの方(改造箇所が少ない)をパックしてみました。d3pipes_block_asyncHACK.zipファイルを一つだけ上書きになりますソースの原本をパックアップを取ってから試してみてください。解凍したらxoops_trust_path/modules/d3pipes/include/直下に追加1つ追加common_functions_ext.phpxoops_trust_path/modules/d3pipes/joints/union/直下に2つ追加D3pipesUnionMergesortcache.class.phpD3pipesUnionSeparatedcache.class.phpxoops_trust_path/modules/d3pipes/main/直下に改造分1つ入れ替え(このソースのバックアップを忘れずに)jsbackend.php早くならないかもしれません。したら、追加したソースを削除して、jsbackend.phpを元のソースに戻してください。私のブログにhttp://xodomifara.lolipop.jp/doxo/modules/chalog/?action=BlogView&id=80同時にページを見られる場合の問題点とか改造内容が書いてあります。今後巡回先が増え続けたら、タイムアウトでデータのfetchに失敗すると予想されます。表示用phpとfetch用phpとを分離してfetch用phpは、巡回先を分割してcronなどで別途サイト側が定期的に時間をずらして動かすというのが私の思考シュミレーションレベルでの私の結論です。fetch用phpとを分離してfetch用phpは、巡回先を分割してcronなどで別途サイト側が(パラメータはソースにベタ打ちでもいいでしょう?)定期的に時間をずらして動かすというのが良いだろうというのが私の結論です。#20843様々な方法の提案ありがとうございます。fetch用phpとを分離してfetch用phpは、巡回先を分割してcronなどで別途サイト側が(パラメータはソースにベタ打ちでもいいでしょう?)定期的に時間をずらして動かすというのが良いだろうというのが私の結論です。負荷の分散を実施してみます。xhldを初期に使用していたのですが、アクセス時の更新作業で500エラーになってしまい、悩んだ末でのd3pipesへ変更したのが今の状態です。本サイトに向けてテスト中なのですが、なかなかうまく反映されません。最新の情報を抜き出してくれず、過去の記事が表示されてしまいます。本サイトに向けてテスト中なのですが、なかなかうまく反映されません。最新の情報を抜き出してくれず、過去の記事が表示されてしまいます。(基準があるのかも不明、切り抜きの2番目だったり、5番目だったり様々)http://www.e-com-shimada.jp/portal2/ご紹介いただいたプログラムについて、何かこちらで勘違いをしてしまったのか・・・・もし見ていましたら、細かい使い方をお教えいただけないでしょうか?http://xodomifara.lolipop.jp/doxo/modules/chalog/?action=BlogView&id=79で書いた用にあのクエリーには問題点があります切り抜きdbからの表示は最後に登録されたものを出すだけクエリーなんですがRSSの取得は、Rssを表示すればわかると思いますが、何件かまとめて発信元がされています一度に取得するので、発信元がどういう順番で発信しているかにより切り抜きdbに保存するときにどれが最後に登録されるか特定できません。普通は新しいものが最後のものが多いのですが、決まっているわけではないので。http://xodomifara.lolipop.jp/doxo/modules/chalog/?action=BlogView&id=81普通はRSSは、最新のデータが最後のデータなので私が試したところが少ないのでたまたまうまくいったのでしょうそれで、最後に登録されるものをDBに保存の前に一段ソート処理を追加してやるといいのですがあんまり使わないモードですがd3パイプには、日付で降順のソートのモード「発行日新着順ソート」があります、でもこれだと、最後のデータは一番古いものになってしまいます。)と反対にすれば、逆順になります改造して「発行日新着順ソート」を「dbへ切り抜きとして保存」の前に「発行日新着順ソート」を一段処理を追加してみてください。dbへ切り抜き保存されていると、新しく保存されないので一度dbへ切り抜きを削除する必要がありますたぶん、これで、パブリック日が最後のものがdbへ切り抜き保存の最後となり、パイプごとdbのidの最大がパブリック日が最後のものになるのでは?あくまで、思考シュミレーションなんですけどこの方法パブリック日を持ってない規格外rssはどうしようもないです。本サイトに向けてテスト中なのですが、なかなかうまく反映されません。まちがえました「発行日新着順ソート」は改造せずに「発行日新着順ソート」を「dbへ切り抜きとして保存」の前に「発行日新着順ソート」を一段処理を追加してみてください。0日を指定してすべて削除します。表示は的なくなります。変更するでいけると思います。結果はまたご報告しますね。#20838引用:xoops_trust_path/modules/d3pipes/main/直下に改造分1つ入れ替え(このソースのバックアップを忘れずに)jsbackend.php早くならないかもしれません。やっばりキャシュからのも、phpファイルを2つに分けなければ速くはらなかったです。;//--></script><noscript><{$block.lang_async_noscript}></noscript>と変更しますもしも、効果を認められないときは、原本のテンプレートに戻してください。#20841引用:引用:xoops_trust_path/modules/d3pipes/main/直下に改造分1つ入れ替え(このソースのバックアップを忘れずに)jsbackend.php早くならないかもしれません。;//--></script><noscript><{$block.lang_async_noscript}></noscript>と変更します効果を認められないですね。追加では、追加の2つのスクリプトの処理順が決まっていないみたいです。