2011-09-27 25 views
2

我想打包一個機架的web應用程序來分發它,其中一個無限循環駐留。所以它不會停止,直到我的CTRL-C。但是,似乎ocra只會在「自然」結束時將其打包,並且ctrl-c會停止該進程。我怎麼能打包一個機架的web應用程序包括無限循環

已經使用exitabortcall對象被傳遞給rake的方法。之後整個過程不會結束,但一些跟蹤信息出現。

可以在線程中調用rake.run,並在給定時間後結束應用程序。但我不想分發自殺版本。那麼是否還有更多符合條件和可控制的方式來正常結束它?

不知道這是不是一個瘋狂的問題,但在此先感謝。

回答

2

根據the OCRA docu,運行時OCRA設置環境變量OCRA_EXECUTABLE

所以,你可以檢查你的代碼環境var和如果OCRA運行打破循環,例如:

while true 
    break if ENV.has_key? 'OCRA_EXECUTABLE' 
    ... 
end 
+0

哇,這是多於幫助。謝謝! 我一直在想一些奇怪的方式來異步終止它與一個特殊的HTTP請求。 – Jokester

+0

@Jokester,我剛剛發現你的舊問題。我現在有同樣的問題,我用'Rack :: Server.start選項'啓動我的服務器,但我不知道如何檢查該環境變量可以幫助我解決此問題。 – Sven

+1

Hello @Sven。你是否試圖用OCRA包裝它?我無法完全記得,但我想我們可以使用該env變量僅在打包時打破循環。以'.exe'運行時,它仍然是一個無限循環。 – Jokester