【发布时间】:2010-07-16 21:03:21
【问题描述】:
我的服务器进程基本上是一个响应 REST 请求的 API。
其中一些请求用于启动长时间运行的任务。
做这样的事情是个坏主意吗?
get "/crawl_the_web" do
Thread.new do
Crawler.new # this will take many many days to complete
end
end
get "/status" do
"going well" # this can be run while there are active Crawler threads
end
服务器每天处理的请求不会超过 1000 个。
【问题讨论】:
-
您是在问创建工作线程来执行长时间运行的任务是否是个坏主意,或者您是在问首先执行长时间运行的任务是否是个坏主意?
-
我在思考单线程服务器的概念......也许我错过了关于服务器是什么的一些东西......
-
@Rob:询问创建工作线程是否是个坏主意
-
我想避免在我的应用程序中引入另一个依赖项。如果我使用工作线程,我只需要管理一个进程。看到运行线程的数量总是很小(5-10),我认为线程池和排队是不必要的。随着事情的发展,两者都必须被引入,我将考虑添加这种队列系统的依赖关系。在我描述的情况下,潜在的危险是什么?
标签: ruby background backgroundworker sinatra