質問編集履歴
7
編集しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -85,7 +85,7 @@
|
|
85
85
|
|
86
86
|
### 追記
|
87
87
|
|
88
|
-
実際にサイト
|
88
|
+
実際にサイトBで使用しているRSS取得に関するソースは以下のような感じです。
|
89
89
|
|
90
90
|
```ここに言語を入力
|
91
91
|
|
6
質問文に追記しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -81,8 +81,53 @@
|
|
81
81
|
|
82
82
|
phpにはあまり詳しくないので恐縮ですが、何卒よろしくお願いいたします。
|
83
83
|
|
84
|
-
※最悪、条件分岐しなくても大丈夫です。サイトB全体が落ちない方法があればお願いします
|
84
|
+
※最悪、条件分岐しなくても大丈夫です。サイトB全体が落ちない方法があればお願いします。
|
85
|
+
|
86
|
+
### 追記
|
87
|
+
|
88
|
+
実際にサイトAで使用しているRSS取得に関するソースは以下のような感じです。
|
89
|
+
|
90
|
+
```ここに言語を入力
|
91
|
+
|
92
|
+
<?php
|
93
|
+
require_once "Feed.php" ; //rss-phpライブラリを読み込みます
|
94
|
+
$feed = new Feed ;
|
95
|
+
$url = "feed_test.php"; //RSSのURL
|
96
|
+
$rss = $feed->loadRss( $url ) ;
|
97
|
+
$link2 = $rss->link;
|
98
|
+
$num = 20;//表示させたい件数
|
99
|
+
$i=0;
|
100
|
+
$desW = 0;//詳細の文字数を制限します。制限しないときは0にします。
|
101
|
+
if ( $desW != 0){
|
102
|
+
$desW = ($desW*2)+2;
|
103
|
+
}
|
104
|
+
// item毎に処理
|
105
|
+
foreach( $rss->item as $item )
|
106
|
+
{
|
107
|
+
if($i>=$num){
|
108
|
+
}
|
109
|
+
else{
|
110
|
+
|
111
|
+
$title = $item->title;
|
112
|
+
$author = $item->author;
|
113
|
+
$targetTime = strtotime($item->pubDate);
|
114
|
+
$date = date('Y年n月j日 H:i', strtotime('-0 hour', $targetTime));
|
115
|
+
$link = $item->link;
|
116
|
+
$content = $item->children('content', true)->encoded;
|
117
|
+
$description = $item->description;
|
118
|
+
?>
|
119
|
+
|
120
|
+
rssを使用したコンテンツ
|
121
|
+
|
122
|
+
<?php
|
123
|
+
$i++;
|
124
|
+
}
|
125
|
+
}
|
126
|
+
|
127
|
+
?>
|
128
|
+
<!--▲RSS取得-->
|
129
|
+
|
130
|
+
```
|
85
131
|
|
86
132
|
|
87
133
|
|
88
|
-
|
5
説明文を追加しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -19,6 +19,9 @@
|
|
19
19
|
### 試した事
|
20
20
|
|
21
21
|
```ここに言語を入力
|
22
|
+
|
23
|
+
※どのようにタイムアウト処理を実装するかを考察するためのデモです。
|
24
|
+
|
22
25
|
■test.php
|
23
26
|
|
24
27
|
<?php
|
4
事情説明を修正しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
「サイトB」にサイトAの更新情報をコンテンツの一部として表示させているのですが、
|
5
5
|
WordPress側でメンテナンスや障害が発生すると、サイトBで処理待ちリクエストが増え、サイトBまで落ちてしまいます。
|
6
6
|
|
7
|
-
ちなみにサイトAはエックスサーバーを使用しており、そちらで少し前に大規模な障害が発生した
|
7
|
+
ちなみにサイトAはエックスサーバーを使用しており、そちらで少し前に大規模な障害が発生した際には、サイトBまで表示ができなくなっていました。
|
8
8
|
|
9
9
|
この問題を回避するためには、サイトAの更新情報をサイトBにiframeで読み込むという手段もあるのですが、これはあまり使いたくないので
|
10
10
|
タイムアウト処理を導入して一定時間が経ってもサイトAの更新情報を取得できない場合は、
|
3
事情説明に追記しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
WordPressで作成した「サイトA」のRSSフィードを使用して
|
4
4
|
「サイトB」にサイトAの更新情報をコンテンツの一部として表示させているのですが、
|
5
5
|
WordPress側でメンテナンスや障害が発生すると、サイトBで処理待ちリクエストが増え、サイトBまで落ちてしまいます。
|
6
|
+
|
7
|
+
ちなみにサイトAはエックスサーバーを使用しており、そちらで少し前に大規模な障害が発生したため、サイトBまで表示ができなくなってしまいました。
|
6
8
|
|
7
9
|
この問題を回避するためには、サイトAの更新情報をサイトBにiframeで読み込むという手段もあるのですが、これはあまり使いたくないので
|
8
10
|
タイムアウト処理を導入して一定時間が経ってもサイトAの更新情報を取得できない場合は、
|
2
最後に注釈を追加しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -76,6 +76,8 @@
|
|
76
76
|
|
77
77
|
phpにはあまり詳しくないので恐縮ですが、何卒よろしくお願いいたします。
|
78
78
|
|
79
|
+
※最悪、条件分岐しなくても大丈夫です。サイトB全体が落ちない方法があればお願いします
|
79
80
|
|
80
81
|
|
81
82
|
|
83
|
+
|
1
発生している問題について補足しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -61,6 +61,14 @@
|
|
61
61
|
|
62
62
|
### 発生している問題
|
63
63
|
|
64
|
+
上記はデモページのソースです。
|
65
|
+
|
66
|
+
test2.phpは、sleep関数で5秒間待ってコンテンツを表示するようにしています。
|
67
|
+
|
68
|
+
test.phpではmicrotime 関数を使用して、3秒間待ってコンテンツを取得できなければ別の処理をするようにしています。
|
69
|
+
|
70
|
+
test2.phpのコンテンツが表示されるまでに5秒掛かるので、test.phpでは「表示できませんでした」という結果が得られます。
|
71
|
+
|
64
72
|
microtime 関数を使用して、一定時間過ぎてもコンテンツが取得できなかった場合は表示を変える事はできました。
|
65
73
|
ですが、このやり方だと、sleep関数を5秒に設定した場合、5秒待って処理を分けるので、結局、サーバーへの負荷という意味では変わらないのかなと…
|
66
74
|
|