我是 Web 开发和多线程的新手,我对一些概念有疑问。
在我的 Rails 应用程序中,客户可以通过表单提交“工作”。每次创建作业时,它都会传递给名为“Dispatcher”的模块,并且调度程序模块必须等待 3 分钟才能执行其他任务。
为了做到这一点,我建议只运行 sleep 3 分钟。
我的伙伴说这是个坏主意,因为每次创建工作时它都会冻结应用程序 3 分钟。
我的问题是我不明白这是怎么可能的。每当客户端连接到我们的应用程序(托管在 AWS elastic beanstalk 上)时,我假设 EC2 服务器启动一个新线程来处理客户端请求。每当客户端创建作业时,都会导致运行应用程序的 HIS 线程休眠 3 分钟。这应该不是问题,因为我们希望我们的应用在 3 分钟结束之前什么都不做。
有人可以告诉我我的概念是否正确。我想完全了解从发出请求的客户端到处理它的服务器,再到将 HTML 和 javascript 发送回客户端的工作原理。