‹›Облачное хранение и веб-интерфейсыКэшировать сводкy погоды с популярной веб-страницы
Если отсроченный объект системы файлов, созданный с помощью функции Delayed, просматривается многими людьми, его можно кэшировать в течение определенного периода времени с помощью опции CachePersistence.
Зададим функцию, которая определит температуру в Рио-де-Жанейро на прошлой неделе.
код на языке Wolfram Language целиком
rioTemperatureHistory[] := 
 With[{temps = 
    AirTemperatureData[
     GeoPosition[
      Entity["City", {"RioDeJaneiro", "RioDeJaneiro", 
        "Brazil"}]], {Now - Quantity[1, "Weeks"], Now}]},
  labelcolor = GrayLevel[0.4];
  tempcolor = GrayLevel[0.4];
  grid = Grid[{{Style["Current", labelcolor], 
      Row[{Style[
         QuantityForm[Round@Last[temps["Values"]], "Abbreviation"], 
         tempcolor], " "}]}, {Style["High", labelcolor], 
      Row[{Style[
         QuantityForm[Round@Max[temps["Values"]], "Abbreviation"], 
         tempcolor], " "}]}, {Style["Low", labelcolor], 
      Row[{Style[
         QuantityForm[Round@Min[temps["Values"]], "Abbreviation"], 
         tempcolor], " "}]}}, Alignment -> {{Right, Left}}];
  table = 
   Style[Column[{Row[{"Past Week "}, Alignment -> {Bottom, Right}
       ], grid}, Alignment -> Right], 16, RGBColor[
    0.9098049191388243, 0.3176450101594796, 0.24313742164725222`]];
  
  DateListPlot[temps, PlotRange -> {55, 100}, 
   AxesLabel -> Style["\[Degree]F", 20, Black], 
   TicksStyle -> Directive[Black, 14], Ticks -> {None, Automatic}, 
   PlotStyle -> Directive[AbsoluteThickness[2], Black], 
   Filling -> Bottom, 
   FillingStyle -> 
    Directive[RGBColor[
     0.9098049191388243, 0.3176450101594796, 0.24313742164725222`], 
     Opacity[1]], 
   Epilog -> Inset[table, Scaled[{0.95, 0.9}], {Right, Top}], 
   PlotTheme -> {"Wide", "Presentation"}, ImageSize -> 550]]
rioTemperatureHistory[]Реализуем данную функцию в качестве приложения, которое кэширует её результат в течение 5 минут. Теперь тысячи пользователей могут получить доступ к данному приложению и получить достаточно точную информацию без привлечения сервера для пересчёта результата каждый раз, когда вводится запрос. Данный подход приводит к улучшению времени отклика и снижению нагрузки на сервер.
obj = CloudDeploy[
  Delayed[rioTemperatureHistory[], "PNG", 
   CachePersistence -> Quantity[5, "Minutes"]]]