并发问题可以用锁解决,比如乐观锁,悲观锁,但是看到很多提到使用redis队列解决,那整个过程是在怎样的.
是否像这样:
接口里面收到请求,将任务参数push到redis队列里,接下来需要执行处理队列任务,这个执行操作是不是要不停去查询redis队列,查询到有任务就去执行.
假如并发1000个请求,既然是队列,那岂不是最后一个完成的要等待很长时间?
并发问题可以用锁解决,比如乐观锁,悲观锁,但是看到很多提到使用redis队列解决,那整个过程是在怎样的.
是否像这样:
接口里面收到请求,将任务参数push到redis队列里,接下来需要执行处理队列任务,这个执行操作是不是要不停去查询redis队列,查询到有任务就去执行.
假如并发1000个请求,既然是队列,那岂不是最后一个完成的要等待很长时间?
5 回答4.8k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答1.7k 阅读✓ 已解决
5 回答1.9k 阅读
2 回答1.3k 阅读✓ 已解决
3 回答2k 阅读
队列不就是先进先出的一种数据格式吗?他实现的原理本来就是强行把多线程转为单线程来避免并发导致的一些问题。
我目前使用过是两个场景
其实队列任务就是优化用户体验和降低后台处理难度的一种方式,你直接在逻辑里面处理也可以,但是你解决并发问题,还要解决在需要长时间执行任务的情况下页面的假死问题,还有浏览器超时,第三方返回错误。不是不能解决,很烦,我刚开始尝试过,差点摔键盘。