url/codeがヒットするたびにスクリプト(code.rb)を実行したい。Sinatra:URLにヒットしたときにルビコードを実行する
スクリプトを実行するにはどうすればよいですか?オフ
require 'sinatra'
get '/' do
#run the script
end
url/codeがヒットするたびにスクリプト(code.rb)を実行したい。Sinatra:URLにヒットしたときにルビコードを実行する
スクリプトを実行するにはどうすればよいですか?オフ
require 'sinatra'
get '/' do
#run the script
end
いずれのフォーク別のプロセス:
load 'code.rb' # *not* require
あなたはそれことを保証するためにload
コードする必要があります。現在のコンテキストに
system('ruby code.rb')
...または単にload
スクリプト毎回実行されます。 hi
の出力がログに要求エントリの前に来る
smagic:Desktop phrogz$ cat hi.rb
puts "hi"
smagic:Desktop phrogz$ cat test.rb
require 'sinatra'
get '/require' do
x = require_relative('hi.rb')
"require sez #{x}"
end
get '/load' do
x = load('hi.rb')
"load sez #{x}"
end
smagic:Desktop phrogz$ ruby test.rb
== Sinatra/1.1.2 has taken the stage on 4567 for development with backup from Thin
>> Thin web server (v1.2.7 codename No Hup)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:4567, CTRL+C to stop
hi
127.0.0.1 - - [16/Jan/2011 20:49:43] "GET /require HTTP/1.1" 200 16 0.0019
127.0.0.1 - - [16/Jan/2011 20:49:46] "GET /require HTTP/1.1" 200 17 0.0005
hi
127.0.0.1 - - [16/Jan/2011 20:49:52] "GET /load HTTP/1.1" 200 13 0.0009
hi
127.0.0.1 - - [16/Jan/2011 20:49:54] "GET /load HTTP/1.1" 200 13 0.0008
127.0.0.1 - - [16/Jan/2011 20:50:09] "GET /require HTTP/1.1" 200 17 0.0005
127.0.0.1 - - [16/Jan/2011 20:50:12] "GET /require HTTP/1.1" 200 17 0.0005
;:require
は最初のリクエストに応じて、一度コードをロードした後、再びないだろう「要求する」という要求は最初にhi
の出力のみであり、「ロードする」要求は毎回hi
と表示されます。
smagic:~ phrogz$ curl http://localhost:4567/require
require sez true
smagic:~ phrogz$ curl http://localhost:4567/require
require sez false
smagic:~ phrogz$ curl http://localhost:4567/load
load sez true
smagic:~ phrogz$ curl http://localhost:4567/load
load sez true
smagic:~ phrogz$ curl http://localhost:4567/require
require sez false
smagic:~ phrogz$ curl http://localhost:4567/require
require sez false
あなたが受け入れ答えであることを考えると、私はあなたがそれを更新する必要があることを示唆するかもしれない:ここで
true
は、ファイル内のコードが実際に実行されたとfalse
はそれがなかったことを示していることを示し、サーバーの出力は、です私の答えごとに 'require'の代わりに' load'を提案しますか? – Phrogz彼はそうです。 – tekknolagi
良い点!変化。 –