1
我做了一個交互式rake任務來完成管理任務。此任務通過STDIN.gets.strip
獲得輸入,並按照計劃在本地運行:輸入某個值,然後按Enter
,任務在下一個STDIN.gets.strip
處繼續運行。Heroku上的Rake任務:STDIN.gets.strip - 「Enter」鍵的行爲按下兩次
但是,當我試圖通過heroku
寶石(在Windows 7中)在Heroku上運行:
heroku run rake admin --app my-application
它承認Enter
鍵按下兩次 - 第一次與價值,第二次則是剛剛Enter
,沒有價值。
如何防止這種行爲?我可以在STDIN.gets.strip
之後以某種方式清理輸入緩衝區嗎?
我知道如何完成需要參數的任務,並且有多種類型的任務,但是我不喜歡這種方法,原因如下:1.每個rake任務準備運行很長一段時間,然後快速完成工作。我很惱火。交互式任務使我可以在20秒內完成10個耙子任務。這10個rake任務佔用2分鐘(包括等待); 2.我必須用rake -T列出rake任務(並等到它開始實際列出任務)。我必須記住每個任務的調用語法。 – Paul 2013-02-27 15:10:31
P.S. Mark,我在交互式rake任務中詢問STDIN,但你回答說我不需要交互式rake任務。在嚴格的條件下,我不得不降低你的答案,但實際上不會這樣做。 – Paul 2013-02-27 15:12:21
您好,我很欣賞您的評論,但有一個想法,如果需要輸入的問題需要20秒才能完成,您可以不在該網站中爲該輸入創建接口,然後擁有一個接受輸入的網頁,然後運行任務處理。 20秒不會吹出Heroku 30秒的限制。 – 2013-02-27 16:44:27