質問編集履歴

7

編集しました

2022/05/04 10:35

投稿

honda_ta
honda_ta

スコア14

test CHANGED
File without changes
test CHANGED
@@ -85,7 +85,7 @@
85
85
 
86
86
  ### 追記
87
87
 
88
- 実際にサイトAで使用しているRSS取得に関するソースは以下のような感じです。
88
+ 実際にサイトBで使用しているRSS取得に関するソースは以下のような感じです。
89
89
 
90
90
  ```ここに言語を入力
91
91
 

6

質問文に追記しました。

2022/05/04 10:33

投稿

honda_ta
honda_ta

スコア14

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

説明文を追加しました。

2022/05/03 17:22

投稿

honda_ta
honda_ta

スコア14

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

事情説明を修正しました。

2022/05/03 16:41

投稿

honda_ta
honda_ta

スコア14

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,7 @@
4
4
  「サイトB」にサイトAの更新情報をコンテンツの一部として表示させているのですが、
5
5
  WordPress側でメンテナンスや障害が発生すると、サイトBで処理待ちリクエストが増え、サイトBまで落ちてしまいます。
6
6
 
7
- ちなみにサイトAはエックスサーバーを使用しており、そちらで少し前に大規模な障害が発生したため、サイトBまで表示ができなくなってしまいました。
7
+ ちなみにサイトAはエックスサーバーを使用しており、そちらで少し前に大規模な障害が発生した際には、サイトBまで表示ができなくなっていました。
8
8
 
9
9
  この問題を回避するためには、サイトAの更新情報をサイトBにiframeで読み込むという手段もあるのですが、これはあまり使いたくないので
10
10
  タイムアウト処理を導入して一定時間が経ってもサイトAの更新情報を取得できない場合は、

3

事情説明に追記しました。

2022/05/03 16:40

投稿

honda_ta
honda_ta

スコア14

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

最後に注釈を追加しました。

2022/05/03 15:33

投稿

honda_ta
honda_ta

スコア14

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

発生している問題について補足しました

2022/05/03 14:54

投稿

honda_ta
honda_ta

スコア14

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