前言
受到 Barret Schloerke 在 studio::global(2021) 上的演讲的启发(我会在链接可用时立即添加),我尝试实现一个应用程序来查看使用{future
}、{plumber}
、 两者或都不使用 Shiny之间的区别应用程序运行一系列快速 - 慢 - 慢 - 快计算(在不同的输出上和在同一输出中的序列中)。
要旨
你可以在这里找到我的尝试,包括app.R
Shiny 应用程序和plumber.R
API。
结果
选择执行(“慢”为 5 秒) | 结果 | 期待 | 注释 |
---|---|---|---|
标准运行 | 在任何事物出现前约 20 秒,接下来的一切都在同一时刻出现 | ~20 秒,以某种方式依次出现 | 为什么没有顺序出现? |
{future} 只要 |
在任何事物出现前约 5 秒,接下来的一切都在同一时刻出现 | ~20 几乎立即出现“第一个快速”和“第二个快速”,接下来(~5)“第一个慢”或“第二个慢”,下一个(~10)另一个,最后(~20)“顺序”) | 我希望这类似于这里发生的组合类型的运行......“顺序”怎么可能在 5 秒内完成? |
{plumber} 只要 |
与标准运行相同(在解决每个 API 调用之前,r 应该保持忙碌,对吗?) | 同时(~20),但按顺序出现 | 为什么闪亮同时渲染所有东西? |
{future} 和{plumber} |
与标准运行相同 | 我根本没想到这一点!,我在这里期望的是“ _fast”立即出现,“ _slow”在大约 5 秒后的同一时间出现,“连续”在开始后大约 10 秒后出现(即,总共约 10 秒) | 我在这里完全困惑:-( |
怀疑
我不明白的主要事情之一是为什么在激活时{future}
(无论有或没有{plumber}
),“第一次快速”不会立即出现。而且一般来说,为什么输出不出现在一个序列中时{future}
不涉及。怎么可能{future}
单独“连续”停留约 5 秒?
所以,很明显,我做错了一些事情,我没有正确理解一些事情。
问题
有人可以帮助我了解我在哪里/什么(并可能尝试推断“为什么”)我让应用程序错误,和/或 API 错误,或者他们的交互错误?
谢谢你,科拉多。