毎秒リモート サービスを呼び出す機能を実行したいと考えています。これを行うには、次のようなものがあります。
stop = false
text = ""
while stop == false
r = RestClient.post 'http://example.com'
text += r.to_str
sleep 1
# after a treatment, the value of stop will set to true
end
問題は、http 要求が完了するまでプログラムがブロックされることであり、私はそれを望んでいません。このコードをサブプロセスに入れることはできますが、結果を呼び出し順に保持したいと考えています。たとえば、次のリクエストを行うことができます。
time | anwser
--------------
10 | Happy
100 | New
10 | Year
2 番目の要求は 3 番目の要求よりも長いため、スレッドを使用すると、2 番目の前に 3 番目の結果が得られ、変数の値はtext
and HappyYearNew
I want になりHappyNewYear
ます。
複数のプロセスを持ち、元の順序を維持する方法はありますか? これは非常に小さなプログラムです。可能であれば、redis のようなサーバーをインストールする必要はありません。