Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在多台主机上并行执行_Java_Mysql_Multithreading_Parallel Processing - Fatal编程技术网

Java 在多台主机上并行执行

Java 在多台主机上并行执行,java,mysql,multithreading,parallel-processing,Java,Mysql,Multithreading,Parallel Processing,我的数据库中有以下数据 LOGANAME DOWNLOADED LOGNAME字段告诉我要下载和处理的日志,并且DOWNLOADED是我在成功下载日志时设置为true的标志。因为有很多日志需要下载,所以我希望运行下载过程并将其标记为在多台主机上下载。因此,基本上,我会进行一次数据库查询,以获取下载的所有日志名='false',然后下载它们并设置DOWNLOADED='true'。现在,当我在多台主机上运行同一进程时,所有主机都会下载所有日志。是否有方法对此进行编码,以确保主机不会下载相同

我的数据库中有以下数据

LOGANAME    DOWNLOADED

LOGNAME字段告诉我要下载和处理的日志,并且DOWNLOADED是我在成功下载日志时设置为true的标志。因为有很多日志需要下载,所以我希望运行下载过程并将其标记为在多台主机上下载。因此,基本上,我会进行一次数据库查询,以获取下载的所有日志名='false',然后下载它们并设置DOWNLOADED='true'。现在,当我在多台主机上运行同一进程时,所有主机都会下载所有日志。是否有方法对此进行编码,以确保主机不会下载相同的日志?

在从进程下载任何日志之前,通过触发
更新
SQL,将
已下载
标志标记为
true

UPDATE TABLENAME SET DOWNLOADED = `true` where DOWNLOADED = `false` AND LOGNAME = LOG_NAME_TO_DOWNLOAD 
并检查
UPDATE
语句的输出,以确定有多少行受到影响。如果受影响的行数大于0,则继续从该进程下载日志,否则跳过该日志文件并处理另一个日志文件

我认为
LOGNAME
是唯一的,即此列是
主键
或具有所有不同的值