背景信息:假设我们有一个连接500个客户端的服务,它们处于持续活动状态,我想通过将它们插入基于MySQL InnoDB的表来记录大部分内容。服务器正在处理一个简单的线程。
从外部程序(网站),我继续从该表中选择数据,是否会导致它被锁定? 如果是这样,我认为服务器无法继续插入或更新数据,直到从外部程序完成选择任务。
我想到的第一件事是实现生产者 - 消费者并发,其中一个将数据推入队列,另一个将数据插入数据库;因此,在从外部程序中选择数据的情况下,消费者不会继续而不是整个服务器。
我已经看到了一些消费者/生产者示例,其中生产者在处理数据时无法推送数据。在这种情况下,是否可以制作两个容器,只需将其推到未使用的容器上即可?因为,如果消费者正在处理数据,那么生产者就不会继续将其推入队列,这使我怀疑其效率。 另外,我一直在研究这个例子: http://www.codeproject.com/Articles/43510/Lock-Free-Single-Producer-Single-Consumer-Circular 如果它按照描述的方式工作,有什么我应该担心的吗?有什么我想念的吗? 如果select查询占用太多而插入查询返回超时,是否可以重新定义以增加超时值或在发生故障时重试查询?
由于