2013-12-05 3 views
0

В моей базе данных есть следующие данные.Выполнение Parellel на нескольких хостах

LOGANAME DOWNLOADED 

LOGNAME поле говорит мне, что журналы для загрузки и процесса и загруженная флаг, который я поставил, чтобы верно, когда я успешно скачал журнал. Так как есть много журналов для загрузки, я хочу запустить процесс загрузки и пометки как загруженный на несколько хостов. Поэтому в основном я делаю запрос базы данных, чтобы получить все имя журнала, где DOWNLOADED = 'false', а затем загрузить их и установить DOWNLOADED = 'true'. Теперь, когда я запускаю один и тот же процесс по нескольким хостам, все они загружают все журналы. Есть ли способ закодировать это, чтобы убедиться, что хосты не загружают одни и те же журналы?

ответ

1

Перед загрузкой любого журнала из процесса, отметьте DOWNLOADED флаг true обжигом Update SQL Согласовать

UPDATE TABLENAME SET DOWNLOADED = `true` where DOWNLOADED = `false` AND LOGNAME = LOG_NAME_TO_DOWNLOAD 

и проверьте вывод UPDATE заявление о том, сколько строк были затронуты. Если количество строк, затронутых строк, больше, чем 0, то продолжайте загрузку журналов из этого процесса, иначе пропустите этот файл журнала и обработайте другой.

Я считаю, что LOGNAME является уникальным, то есть это столбцы Primary Key или имеющие все определенные значения.

Смежные вопросы