我有一个执行“可能的”长时间运行任务的操作。一种可能,因为它向远程服务器发出请求,并且由于网络延迟,它可能会阻塞用户界面,并为用户提供较小的延迟。
我的问题不是关于“如何在后台发送长任务”,而是如何向用户推送通知。我的想法是,用户点击按钮,它在后台启动一个任务,web界面被解锁,用户可以做任何他想做的事情,当任务完成时,他会收到一条闪光消息。例如,我可以用AJAX来做这件事,轮询服务器,这是一个特定的操作,可以给我任务的状态,但是有没有什么模式可以基于事件来做呢?对具有概念或原型证明的答案的赞誉。
发布于 2011-06-15 05:17:29
这里没有概念上的证明,但是你可以使用像node.js或delayed_job这样的东西来触发你的Rails任务并解锁接口,然后用node.js或类似的东西与客户端通信。然而,根据您想做的事情,长轮询可能比设置更多的服务器软件更实用。
https://stackoverflow.com/questions/6350226
复制相似问题