簡體   English   中英

從遠程服務器緩存 xml 數據

[英]Caching xml data from remote server

假設我正在使用 simpleXML 解析來自遠程服務器的天氣數據,然后遠程服務器崩潰,因此我無法再恢復其實時提要,但我也不希望我的用戶收到錯誤消息,我將如何 go關於緩存並繼續顯示我在服務器崩潰之前從服務器獲得的最后一條數據?

假設我的 xml 看起來像這樣:

<weather>
    <temperature c="25" f="77">
</weather>

在我能夠重新建立與遠程服務器的連接之前,我將如何 go 顯示值“25”和“77”?

抱歉,如果我的問題不完全清楚……我對服務器端技術的了解非常有限。

首先:當用戶請求您的站點時,您不想實時獲取遠程數據。 當沒有問題發生時,這適用於訪問者很少的小型站點,但是一旦遠程服務器掛起,您的站點也會掛起,直到發生連接超時。

我們主要做的是以下幾點:

  • 創建一個腳本來獲取遠程文件並將其本地存儲在某個臨時文件夾中。 如果無法獲取遠程文件,請不要覆蓋舊文件。 這非常重要,@Drazisil 代碼正是這樣做的。
  • 使用 cron 作業調用該腳本,或者在正常腳本結束時每 x 分鍾調用一次
  • 在創建普通 HTML output 時使用本地文件,而不是遠程文件。

最后,您的頁面將始終快速交付,並且不會在遠程服務器關閉時崩潰。

將值存儲在本地並將此信息顯示給您的用戶。 需要時更新,成功時只會覆蓋本地副本; 如果失敗,您將獲得“本地”副本。

這不是最好的方法,但這是您可以做到的一種方法:

保存信息

$file = 'temp_cache.php';
// Open the file to get existing content
$content = '<?php $c="25"; $f="77"; ?>';
// Write the contents to the file
file_put_contents($file, $content);

加載它

include_once('temp.php');

通過包含該文件,您的 $c 和 $f 變量將被設置,除非您覆蓋它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM