RStudio에서 R 스크립트를 실행하면 R 콘솔은 스크립트가 완료 될 때까지 기다립니다. RStudio에서는 스크립트 실행이 끝날 때까지 RStudio를 많이 사용할 수 없습니다. R 스크립트가 실행되는 데 오랜 시간이 걸리는 경우 RStudio의 여러 인스턴스를 사용하려는 경우가 아니면 RStudio에서 많은 작업을 수행하기가 어려울 수 있습니다.
RStudio 1.2에서는 로컬 작업  및 원격 작업 과  같이 코드가 작동하는 동안 생산성을 유지할 수있는 두 가지 새로운 기능을 도입  했습니다 . 이 스크립트를 사용하여 IDE를 계속 사용하면서 백그라운드에서 스크립트를 실행할 수 있습니다.
RStudio에서 실행중인 작업의 스크린 샷

Local Job

“Local Job”은 별도의 전용 R 세션에서 실행되는 R 스크립트입니다. Source 메뉴를 누르고 Local Job as Source를 선택하여 별도의 세션에서 임의의 R 스크립트를 실행할 수 있습니다  .
로컬 작업으로서의 소스 스크립트
이렇게하면 Job을 운영하기위한 몇 가지 옵션이 제공됩니다.
R 스크립트 작업을 시작하기위한 옵션을 보여주는 대화 상자
기본적으로 작업은 클린 R 세션에서 실행되며 작업이 완료되면 임시 작업 영역이 삭제됩니다. 이것은 가장 빠르고 안전한 구성이며, 부작용이없는 재현 가능한 스크립트에 유용합니다.
그러나 현재 R 세션의 데이터를 작업에 공급하거나 작업이 현재 R 세션으로 데이터를 반환하도록하려면 다음과 같이 대화 상자 옵션을 변경하십시오.
전역 환경의 사본으로 작업 실행 :이 옵션을 선택하면 전역 환경이 저장되고 작업이 실행되기 전에 작업의 R 세션으로로드됩니다. 이는 IDE에서 볼 수있는 것과 동일한 변수를 모두 볼 수 있기 때문에 유용합니다. 사용자 환경에 대형 객체가있는 경우이 작업이 느려질 수 있습니다.
작업 결과 복사 : 기본적으로 작업이 실행되는 임시 작업 영역은 저장되지 않습니다. 작업의 데이터를 다시 R 세션으로 가져 오려면 다음 두 가지 방법이 있습니다.
전역 환경 : 이것은 작업에서 생성 한 모든 R 개체를 R 세션의 글로벌 환경에 다시 배치합니다. 주의해서이 옵션을 사용하십시오! 작업에 의해 작성된 오브젝트는 경고없이 환경에서 동일한 이름을 가진 오브젝트를 겹쳐 9니다.
결과 개체 : 작업에서 생성 한 모든 R 개체를 이름이 지정된 새 환경에 배치합니다  yourscript_results.

Lifetime

로컬 작업은 주 R 프로세스의 비대화형 하위 R 프로세스로 실행됩니다. 즉, R이 있으면 종료됩니다. R 세션이 작업을 실행하는 동안 :

  • 작업이 실행 중일 때 창을 닫으려고하면 RStudio Desktop에서 경고 메시지가 나타납니다.
  • R 세션은 일시 중지되지 않습니다 (RStudio 서버에서)

로컬 작업이 실행되는 동안 진행중인 모든 작업의 ​​진행을 요약하는 진행률 표시 줄이 R 콘솔에 나타납니다.
작업 진행 탭을 보여주는 R 콘솔 창

세부 진행 상황

작업에 대한 RStudio 진행률 막대는 R 스크립트의 각 최상위 명령문 실행을 나타냅니다. 현재 스크립트의 어느 부분을 실행하고 있는지 좀 더 자세히 알고 싶다면 RStudio의 코드 섹션 기능을 사용할 수 있습니다  . 다음과 같이 섹션 마커를 R 스크립트에 추가하십시오.

스크립트에서 작업이 해당 행에 도달하면 섹션 이름이 진행률 막대에 나타납니다.
섹션 진행률을 보여주는 작업 진행률 표시 줄
또한 다음과 같은 일반적인 R 메커니즘을 사용하여 출력을 방출 할 수있습니다. printmessage하고  cat. 이 출력은 작업을 선택할 때 작업 창에 나타납니다.
로컬 작업 출력이있는 작업 창

스크립팅

rstudioapi  패키지 메소드 인  jobRunScript를 사용하여 작업 생성을 스크립팅 할 수 있습니다  . 위의 각 대화 상자 옵션에 해당하는 옵션이 있습니다. 이를 통해보다 복잡한 백그라운드 작업 세트를 자동화하고 조율 할 수 있습니다.
그러나 IDE의 백그라운드 작업 러너는 일반적으로 일회용 대화식 스크립트 실행을 위해 설계되었습니다. R 코드를 작성하고 백그라운드 R 세션에서 비동기 적으로 하위 타스크를 실행해야하는 경우 새 callr 패키지를  대신 사용하는 것이 좋습니다  .

원격 (런처) Job

RStudio Server Pro에는 새로운 Job Launcher를 사용하여 회사의 컴퓨팅 인프라에서 R 스크립트를 실행할 수있는 옵션이 있습니다  . 이렇게하려면 다음을 선택하십시오.
런처 작업으로 소스 스크립트 사용
작업을 시작할 때 컴퓨팅 인프라가 RStudio Server에 제공하는 구성에 따라 실행 방법을 지정할 수 있습니다. 여기에는 리소스 제한과 같은 설정과 Docker 이미지와 같은 구성 매개 변수가 포함될 수 있습니다.
실행기 작업 옵션 대화 상자

런처 작업 모니터링

로컬 작업과 달리 실행 프로그램 작업은 R 세션 과  독립적입니다 . 시작한 런처 작업에 영향을주지 않고 R 세션을 안전하게 종료 할 수 있습니다. 작업을 시작하면 Launcher  탭 에서 상태를 볼 수 있습니다.  Launcher 탭에는 현재 세션에서 시작된 작업뿐만 아니라 모든 작업이 표시됩니다.
실행기 작업의 상태를 보여주는 IDE 탭
RStudio 대시 보드에서 런처 작업의 상태 및 진행 상태를 모니터링 할 수도 있습니다.
실행중인 작업을 보여주는 RStudio Server Pro 대시 보드

작업 진행 상황 표시

RStudio의 새로운 작업 창은 백그라운드 작업의 진도 그 이상을 보여줄 수 있습니다. R 패키지 (및 R 코드)에서 스크립팅하여 장기 실행 작업의 상태, 진행률 및 출력을 표시 할 수도 있습니다.
작업 UI를 사용하여 작업의 진행률 및 / 또는 출력을 표시하려면  자세한 내용 은  rstudioapi 설명서 를 참조하십시오. start with  addJob: UI에 새 작업을 만들고 작업이 진행되면서 UI를 업데이트하는 데 사용할 수있는 핸들을 반환합니다.

마무리

RStudio의 새로운 Jobs 기능이 워크 플로우를 능률화하고 하드웨어를 최대한 활용하는 데 도움이되기를 바랍니다. 특히 R 스크립트를 자주 사용하여 작업을 수행하는 경우가 많습니다. RStudio 1.2 Preview Release 의 새로운 기능을 시험해보십시오.
 
참조: RStudio 1.2 Preview: Jobs | RStudio Blog