是否可以限制用戶代碼在JRuby中運行的時間量?限制用戶代碼的執行時間(JRuby)
回答
不知道你是如何嵌入Ruby代碼,但是你可以很容易有一個背景計時器線程,經過一段時間後評估
raise YourTimeLimitExceededException, 'no more time'
。你也想爲用戶代碼禁用Thread.new和Thread.start(以及java.lang.Thread.new),否則他們可能很容易繞過你的計時器。
您能否詳細說明您的答案? (我正在使用JRuby嵌入) – instantsetsuna 2010-08-16 04:46:42
有一個後臺線程測量花費的時間,並從計時器線程調用'scriptingContainer.evalScriptlet(「raise Timeout :: Timeout」)''。您可以使用java.util.concurrent futures來幫助確保在腳本及時完成時不會超時。 – 2010-08-16 20:54:11
感謝您的回答,我會研究它! :) – instantsetsuna 2010-08-18 04:54:57
- 1. PHP - 執行時間限制
- 2. didReceiveNotificationRequest:withContentHandler - 執行時間限制?
- 3. 通過shell_exec設置java代碼執行時間限制
- 4. PHP代碼達到執行時間限制
- 5. 執行有限制的PHP代碼
- 6. requestAnimationFrame代碼執行時間
- 7. 限制php的執行時間
- 8. 「真正」 的執行時間限制
- 9. 執行Java函數的時間限制
- 10. C++代碼的時間限制
- 11. 只用當前時間執行代碼?
- 12. 成功執行,但在代碼上傳時超出了時間限制
- 13. 如何設置由python(rpy2)執行的R代碼的時間限制?
- 14. 使用Java類時的JRuby限制
- 15. 如何限制C#foreach循環執行最大時間限制的迭代
- 16. scraperwiki如何限制執行時間?
- 17. 擴大PHP執行時間限制
- 18. 限制函數執行時間
- 19. 減少代碼的執行時間
- 20. Android中的時間代碼執行
- 21. node.js:具有時間間隔的貨幣限制並行執行(速率限制)
- 22. runtime.exec()花費無限時間執行代碼
- 23. 如何強制執行`exec()`調用的時間限制?
- 24. 如何在實際達到限制時執行代碼
- 25. 如何設置運行Ruby代碼的時間限制
- 26. 自無限時間運行代碼
- 27. javascript代碼限制用戶點擊/提交時達到極限
- 28. 在特定時間後執行代碼
- 29. 測量代碼執行時間
- 30. Ironpython代碼執行時間太長?
對不起,模糊不清。用戶提供的ruby代碼正在我的Java應用程序中運行,所以我需要一種方法來運行它只有一段特定的時間。這是需要的,因爲用戶可能會編寫導致無限循環的代碼 - 應該避免。 – instantsetsuna 2010-08-02 10:27:43
我不知道如何在Java中做到這一點,但在Ruby中,你可以用Timeout庫做到這一點:http://www.ruby-doc.org/stdlib-1.9.3/libdoc/timeout/rdoc/Timeout。 html – 2012-09-18 03:56:27