techtalk-mysql1с пишет задания, которые должны выполняться другой программой. Задание представляет из себя запись в таблице базы mysql. Для распараллеливания работы поднимается некоторое количество виртуальных машин. Каждая машина должна забрать свои задания из базы MySQL. Отмечу что база MySQL одна общая и сторонняя программа делает запрос к этой базе.

В качестве решения в таблицу заданий добавлена колонка с именем хоста, значение этой колонки указывает какой машине надо отдать задание. Используем information_schema.processlist в запросе для определения имени хоста, от которого пришёл запрос. Таким образом мы понимаем от какой машины пришёл запрос и можем отдать ей её задания.

Текст запроса:

SELECT * FROM task WHERE host in(select SUBSTRING_INDEX(host,’:’,1) from information_schema.processlist WHERE ID=connection_id())