これは他の何よりも理論的かもしれません。解決策は目覚しいものですが、どんなフィードバック/アイデアも歓迎されます。アクティブセッションのグローバル変数をバックグラウンドプロセスから更新するRstudio Server
簡単に言えば、セッション外のバックグラウンドプロセスから、rstudio-server上のアクティブなセッションの環境変数を更新できるかどうかは疑問です。
たとえば、のは言わせて:
- 私たちは、ウェブサイトの世論調査シリーズ
cron
ジョブとして毎分を実行して、data.frame
- 私たちの関数に特定の要素を解析しているスクリプトが最初で読み込み、持っています
data.frame
が最初に作成され、ポーリングしているウェブサイトの変更を検出した場合は、タイムスタンプ付きの新しい行が追加され、data.frame
がrds
ファイルに保存されます。差異が見つからない場合は、単に終了します。 .First
の機能では、すべてのセッションはassign('.url_df', readRDS('/home/user/url_checkr.rds'), envir = .GlobalEnv)
で始まり、常に最新の更新がアクティブな作業セッションに割り当てられ、常に同じ変数名がグローバルに割り当てられます。
これで、必要に応じて更新された行を使用して、cronまたはalternativeで実行される外部スクリプトから環境変数を更新できるようになりました。
私はそれがecho msg > /proc/$pid/fd/0
を使用して端末間でメッセージを送信することが可能です方法を知っていると我々はすべてのアクティブなセッションを確認し、そのpid
を得るために私達の初期関数でsystem('ps', intern=TRUE)
を使用することができます知っています。質問はですは、どのようにしてこのアプローチを使用して、更新されたフィールドとのアクティブセッションのバックグラウンドでその.Global
変数を実際に更新することができますか?そこから、コンソールなどにメッセージを送信する方法を策定するのは難しくありません。
私の頭を全体のアイデアのまわりで正しく包み込んでいるかどうかはまったく不思議です。
ありがとうございます!
素晴らしいアイデア。フィードバックをお寄せいただきありがとうございます。好奇心のために、これまでと同様のものを実装しようとしましたか? –