您好我开发了一个rails应用程序。
当一个控制器收到请求时,它将呈现客户端视图并通过TCP / IP向LED自动收报机显示发送另一个操作。但发送东西到LED自动收报机显示大约需要3秒钟。我可能会发送5-10个LED指示灯。
这将阻止客户端视图呈现。 (我可以使用多线程发送到每个LED自动收报机显示,但是当线程队列加入时仍然需要延迟3-5秒)
问题: 由于发送到LED失败,客户端视图无关紧要。
谢谢!
答案 0 :(得分:1)
来自https://github.com/tra/spawn的spawn-plugin应该很好用,并且可以使用分叉(默认情况下),线程或产量。
我使用带有fork的spawn来执行长时间运行,相当繁重的任务,它就像魅力一样。一个简单的例子是:
spawn(:method => :fork) do
do_led_stuff()
end
由于您不需要来自LED-ticker的任何反馈,您也不必等待()生成过程。
答案 1 :(得分:0)
您是否尝试过delayed_job(http://rubygems.org/gems/delayed_job)?我不知道它是否与Sinatra兼容,但也许你可以看看它。
答案 2 :(得分:0)
您可以使用Resque(https://github.com/defunkt/resque)