2011-03-07 63 views
1

我有20台工厂机器的所有处理任务。我有一个数据库适配器,与MYSQL数据库进行通信,以便机器将所有信息存储在其中。每个工厂机器面板都有自己的数据库适配器和更新程序线程是否安全? updater线程只是持续检查面板的当前任务ID是否与数据库中的当前任务ID相同,如果没有,则会使用有关新任务的信息重新填充面板。与sql数据库交谈的多线程应用程序的最佳做法

我不确定如果有太多的连接会增加开销吗?

+0

我不认为20个连接会杀死MySQL服务器:p – 2011-03-07 15:25:44

回答

1

而不是有许多连接都做同样的任务创建一个进程,维护taskid列表(如果它是所有机器不同),并检查数据库中的当前taskid。如果它改变了,那么发送消息给所有机器(它们的taskid有变化)来更新它们的面板。这将避免不必要的数据库负载,并且还会处理增加的机器数量而没有任何影响。

+0

一旦试图实现以前的事情,我相信这是我将如何继续下去。 – davidahines 2011-03-07 16:49:26

3

RDBS被设计为在特定时间被多个客户端访问。这是他们的目的之一。

所以我不认为20个,甚至上千个同时连接都会导致任何问题。

+0

+1我同意;这就是RDBMS的设计目的。但是,通常连接需要服务器上的某些资源(例如内存),所以如果你真的想要成千上万(或数百万)的同时连接,你必须考虑这一点。 – 2011-04-05 15:09:56

1

mysql中的连接数受max_connections(允许同时连接的总数)系统变量和max_user_connections(每用户同时连接的最大数量)控制。看看你的服务器设置,也许可以改变它们。默认数字绝对大于20。

相关问题