4

事前に定義された時間間隔ごとに(たとえば5分ごとに)自動的に実行(スケジューリング)したいr関数が1つあります。はいの場合、どのように実行できますか。

4

1 に答える 1

14

理想的には、これにはシステム スケジューラを使用する必要があります。Unix システムでは cron、Windows システムではスケジュールされたタスクです。

関数の呼び出しごとに新しいプロセスを生成できないという要件がある場合があります。その場合は、Sys.sleep() の呼び出しで無限ループを使用して、次の呼び出しまで待ちます。

repeat {
    startTime <- Sys.time()
    runFunction()
    sleepTime <- startTime + 5*60 - Sys.time()
    if (sleepTime > 0)
        Sys.sleep(sleepTime)
}
于 2012-04-09T07:57:53.720 に答える