質問編集履歴

2

書式の改善

2020/08/01 05:50

投稿

nonsuke0113
nonsuke0113

スコア1

test CHANGED
File without changes
test CHANGED
@@ -2,25 +2,37 @@
2
2
 
3
3
 
4
4
 
5
- Ruby on Rails(3.0.5)で出来たページにて、ボタン押下時に、別サーバにあるシェルスクリプトを非同期で実行したい(すぐ同じページにリダイレクトして操作が出来)です。
5
+ Ruby on Rails(3.0.5)で出来たページにて、ボタン押下時に、別サーバにあるシェルスクリプトを非同期で実行したい(すぐ同じページにリダイレクトして操作できようにしたい)です。
6
6
 
7
7
 
8
8
 
9
- 上記スクリプトは、cronで定時実行されているため、スクリプト多重起動チェ行うようにました。
9
+ 上記スクリプトは、cronで定時実行されているため、ボタン押下後、多重起動でスクリプトが実行きなかった時と、実行できた時に、それぞれ別のフラシュメッセージ表示したいです
10
-
11
- 多重起動時は、標準出力に"already"という文字列を出力します。多重起動していなければ、本処理の前に、"success"という文字列出力します。
12
10
 
13
11
 
14
12
 
13
+ ただし、そのスクリプトの処理は、別サーバとやりとりして、画像を加工するなど、かなり時間がかかる為、シェルスクリプトが起動できたかどうか判別できた後は、シェルスクリプトの完了を待たず、フラッシュメッセージを表示したいです。
14
+
15
- ボタン押下後、多重起動でスクリプトが実行できった時と、実行時に、それぞれのフラッシュメッセ表示いです。
15
+ →シェルスクリプトの起動ができどうかはRubyのcontroller側受け取りいが、その後はバで勝手に処理実行て欲しいです。
16
16
 
17
17
 
18
18
 
19
+ ### 試したこと
20
+
21
+ * スクリプト側で多重起動チェックを行うようにしました。
22
+
23
+ * 多重起動時は、標準出力に"already"という文字列を出力し、多重起動していなければ、本来スクリプトで実行される処理の前に、"success"という文字列を出力するようにしました。
24
+
25
+ * Open3.popen3を使用して、別サーバにあるシェルスクリプトを実行し、標準出力・エラーを随時受け取るようにしました。
26
+
27
+ * "success"または"already"という文字列を受け取ったら、ループを抜け、リダイレクトするようにしました。
28
+
19
29
  ### 発生している問題
20
30
 
31
+ "success"または"already"という文字列を受け取ったら、それに応じたフラッシュメッセージを表示して、リダイレクトできたのですが、"success"を受け取った後、スクリプトが動いているサーバにて、その後の処理が実行されていませんでした。
32
+
33
+ (該当のソースコード shの`echo "success" >&1`以降の処理が実行されなかった)。
21
34
 
22
35
 
23
- Open3.popen3を使用して、標準出力・エラーを随時受け取り、欲しい文字列が来た時にループを抜けるようにしたのですが、スクリプトの本処理が実行されませんでした。
24
36
 
25
37
 
26
38
 

1

初心者アイコンの設定

2020/08/01 05:50

投稿

nonsuke0113
nonsuke0113

スコア1

test CHANGED
File without changes
test CHANGED
@@ -142,6 +142,8 @@
142
142
 
143
143
 
144
144
 
145
+
146
+
145
147
  本件実現するための良い方法があれば、ご教示いただきたいです。
146
148
 
147
149
  よろしくお願いいたします。