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
是唯一的,即此列是主键
或具有所有不同的值