Shiny:它如何处理并发请求?

问题描述 投票:0回答:1

如果我使用启动一个闪亮的应用程序

R -e 'shiny::runApp("/app", host="0.0.0.0", port=8888)'

它如何处理并发请求/它的工作程序模型是什么?

每个请求是否在不同的线程,进程中处理,它是否使用事件循环模型,甚至只是一次处理一个请求?

r multithreading shiny multiprocessing event-loop
1个回答
1
投票
  1. 由于R是单线程的,因此shiny并建立在node之上
  2. 所有会话都通过websocket连接到该线程
  3. 使用标准event loop model的传统光泽反应式编程
  4. flush cycle具有以下功能:receiving, updating, reacting, and sending,因此,reactivesobservers被更新时,无法更新其他输入。这样做是为了避免比赛条件
  5. 您可以通过使用async程序包在shiny中利用promises编程
  6. 如果要集成一些更高级的js库,则可以使用V8程序包
  7. 您也可以将integratereact.js一起使用shiny
© www.soinside.com 2019 - 2024. All rights reserved.