我正在开发超级喜欢/出租车预订应用程序。为此,我正在使用 Action Cable。创建新的订单服务器后,获取最近的 10 个司机的列表,并依次发送每个司机的订单详细信息(暂停 40 秒)。
Thread.new do
nearest_drivers.each do |id|
order_data_for_driver = { ... }
ActionCable.server.broadcast("driver_#{id}", order_data_for_driver)
sleep 40
Thread.exit if order.reload.canceled_by_user || order.trip
end
cancel_data = {canceled_by_timeout: true }
ActionCable.server.broadcast("order_#{order.id}", cancel_data )
end
生产模式下rails可以同时运行的线程数有限制吗?例如,如果 100 个用户将创建新订单。可以使用什么更优雅的解决方案?