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