我正在使用 App Harbor 为回合制游戏开发后端服务器,到目前为止它似乎非常适合我的需求。我真的很想运行一个后台进程来处理轮流数据等,我想知道是否有人可以澄清“网络工作者”和“后台工作者”之间的区别是什么?我在 Web 开发方面的经验相当有限,但据我所知,“Web 工作者”用于与 AJAX 页面(我不需要)交互,“后台工作者”允许您在后台运行控制台应用程序(我确实需要!)
谢谢!
Web Worker与来自浏览器的请求连接,可以获取和发送数据到浏览器上的请求。
Background Workers是独立的线程,不连接任何请求,不能单独向浏览器发送数据*。
[*] 仅通过网络工作者。
通常,“Web 工作者”是 Web 应用程序,或处理来自用户的请求的 ASP.NET 站点/服务。“后台工作人员”只是一个计划任务。它在后台以指定的时间间隔运行,并执行一些代码。
不同之处在于,当应用程序收到新请求时,Web 工作者会做一些工作。请求意味着有人在 ASP.NET 上加载页面/调用 Web 服务。当后台工作人员在某个时间间隔启动时,不需要用户加载要执行的页面。它主要用于处理长时间运行的任务。通常的工作流程是 - Web Worker 接收来自用户的请求,并将一些要处理的数据排队。在下一次运行时,后台工作人员获取数据并对其进行处理,并将数据存储在某处(通常在数据库中)。然后网络工作者在用户的下一个请求中检查数据库,如果结果在那里 - 将其显示给用户。
这样用户就不需要等待asp.net页面处理数据并立即返回结果。