質問編集履歴
2
書式の改善
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
初心者アイコンの設定
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
|
よろしくお願いいたします。
|