‹›Interfaces da web e da nuvemArmazene em cache um website popular de meteorogia
Se um objeto de nunvem Delayed é visto por muitas pessoas antes que necessite ser recalculado, sua saída pode ser armazenada em cache por um período de tempo através da opção CachePersistence.
Defina uma função que calcule o histórico da temperatura no Rio de Janeiro na última semana.
mostre o input completo da 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[]
Implemente a função como uma aplicação que armazene em cache o seu resultado por 5 minutos. Agora milhares de usuários podem acessar o aplicativo e obter informações razoavelmente atualizadas sem que o servidor tenha que recalcular o resultado toda hora, resultando em melhor tempo de resposta e menor carga no servidor.
obj = CloudDeploy[
Delayed[rioTemperatureHistory[], "PNG",
CachePersistence -> Quantity[5, "Minutes"]]]