Есть ли возможность для одного клиента rserve совместно использовать рабочее пространство с другим?

Я бы хотел заменить RExcel на Excelsi-R. Excelsi-R общается с R через RServe, и у RServe есть эта функция, благодаря которой каждый клиент работает независимо. рабочие пространства.

Я хочу на самом деле совместно использовать одно рабочее пространство как минимум между двумя одновременно подключенными клиентами. Один клиент будет запускаться с помощью Excelsi-R, а другой — с помощью интерактивного сеанса R, запускаемого вручную. Это позволило бы мне взаимодействовать с сеансом Excelsi-R традиционным способом (скажем, в RStudio).

Мне не нужны асинхронные вычисления; Я совершенно счастлив, если Excelsi-R придется ждать, пока команда, выданная другим соединением, не завершится, и наоборот; точно так же, как в «режиме переднего плана» RExcel.

Является ли это возможным?


person Adam Ryczkowski    schedule 01.12.2015    source источник


Ответы (1)


В настоящее время нет, так как каждый процесс имеет ровно одно соединение. Есть несколько хаков — например, вы можете «переключить» сеансы, запустив прослушиватель для другого соединения в существующем сеансе, — но это может быть слишком ограниченным.

Тем не менее, это технически возможно (Rserve поддерживает зацикливание нескольких соединений — он используется в RCloud для поддержки двух отдельных процессов в одном соединении) — проблема заключается в том, как связать два независимых соединения с одним процессом. Связь rsio была добавлена ​​в Rserve 1.8 специально для того, чтобы разрешить передачу дескрипторов между экземплярами Rserve, но до сих пор она не использовалась. Если есть интерес к такой функциональности, я вижу, как ее можно добавить.

person Simon Urbanek    schedule 11.12.2015
comment
Большое спасибо. Да мне интересно. Это значительно облегчит процесс написания и отладки удаленных и интерактивных вычислений R с интерфейсом Excel. - person Adam Ryczkowski; 11.12.2015
comment
чат. stackoverflow.com/rooms/97637/ - person Adam Ryczkowski; 11.12.2015