Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails rails中异步任务的用户反馈_Ruby On Rails_Ajax - Fatal编程技术网

Ruby on rails rails中异步任务的用户反馈

Ruby on rails rails中异步任务的用户反馈,ruby-on-rails,ajax,Ruby On Rails,Ajax,我有一个执行“可能”长时间运行任务的操作。一种可能的情况是,由于它向远程服务器发出请求,并且由于网络延迟,它可能会阻塞用户界面并给用户一个小的延迟 我的问题与“如何在后台发送长任务”无关,而是如何向用户推送通知。我的想法是,用户点击按钮,它在后台启动一个任务,web界面被解锁,用户可以做任何他想做的事情,当任务完成时,他会收到一条flash消息。我可以使用AJAX,轮询服务器,一个特定的动作,例如,给我任务的状态,但是有没有基于事件的模式呢?有概念证明或原型的答案的荣誉 这里没有概念证明,但是您

我有一个执行“可能”长时间运行任务的操作。一种可能的情况是,由于它向远程服务器发出请求,并且由于网络延迟,它可能会阻塞用户界面并给用户一个小的延迟


我的问题与“如何在后台发送长任务”无关,而是如何向用户推送通知。我的想法是,用户点击按钮,它在后台启动一个任务,web界面被解锁,用户可以做任何他想做的事情,当任务完成时,他会收到一条flash消息。我可以使用AJAX,轮询服务器,一个特定的动作,例如,给我任务的状态,但是有没有基于事件的模式呢?有概念证明或原型的答案的荣誉

这里没有概念证明,但是您可以使用诸如spawn或delayed_job之类的工具来启动Rails任务并解锁接口,然后使用node.js或类似工具与客户端通信。但是,根据您想做什么,长轮询可能比设置更多服务器软件更实用。

您知道吗?当然知道,但是如何将其与控制器集成。我不能在我的控制器中简单地启动EM.run;EventMachine使用的模式(非常接近Reactor模式)是您想要使用的。它就是为此而设计的。您不会在Rails中使用它;除了Rails之外,您还可以使用它。