Надо. Таблицу signal.
Цитата: Значения сигнала о состоянии процесса
Внимание!
Начиная с версии MySQL 5.5, при написании запроса название таблицы "Signal" необходимо заключать в апострофы, т.к. слово "signal" является ключевым.
Пример запроса:
select count(*) from `signal` where `signal`='busy'
Значение сигнала о состоянии процесса импорта хранится в поле signal таблицы signal. Поле может принимать одно из следующих значений:
cumm – сигнал помещается торговой системой и означает, что торговая система подготовила данные, которыми необходимо полностью заменить данные в СуперМаг-УКМ V.4.0 (полная загрузка данных);
incr – сигнал помещается торговой системой и означает, что торговая система подготовила данные, которые содержат в себе только изменения (частичная загрузка данных);
busy – сигнал помещается СуперМаг-УКМ V.4.0 и означает, что конвертер выполняет импортирование данных (конвертер занят).
Первые два сигнала выставляются торговой системой по окончании операции экспортирования, поскольку являются сигналами начала процесса импортирования в СуперМаг-УКМ V.4.0.
Схема взаимодействия систем
Взаимодействие систем состоит из следующих шагов: 1. торговая система проверяет готовность СуперМаг-УКМ V4.0 принять данные. Если СуперМаг-УКМ V4.0 готов принять данные, то торговая система выполняет экспорт данных. Если СуперМаг-УКМ V4.0 не готов принять данные, то торговая система приостанавливает экспорт данных.
Для того чтобы убедиться в том, что СуперМаг-УКМ V4.0 готов принять данные, следует выполнить запрос:
select count(*) from signal where signal='busy'
Нулевое значение означает, что СуперМаг-УКМ V4.0 готов к приему данных.
2. Если СуперМаг-УКМ V4.0 готов принять данные, торговая система проверяет закончился ли предыдущий экспорт данных в СуперМаг-УКМ V4.0 (т.е. сигналов cumm или incr нет).
Если эти сигналы есть, то торговая система удаляет их.
3. Торговая система заполняет таблицы данных и формирует соответствующую запись в таблице signal. Запись в таблице signal информирует сервер СуперМаг-УКМ V4.0 о произведённых изменениях и одновременно является сигналом для начала операции импортирования.
4. Стандартный конвертер СуперМаг-УКМ V4.0 проверяет запись таблицы signal. Если запись хранит информацию о том, что торговая система подготовила данные, конвертер СуперМаг-УКМ V4.0 помещает значение busy в поле signal и начинает импорт данных. После чтения информации СуперМаг-УКМ V4.0 удаляет ее из таблиц.
5. По окончании процесса импорта конвертер СуперМаг-УКМ V4.0 удаляет сигнал о занятости из таблицы signal.
Очередь сигналов и данных
Приведенная схема взаимодействия систем работает для случая, когда экспортированные из торговой системы данные сразу импортируются в СуперМаг-УКМ V4.0. Если есть вероятность того, что СуперМаг-УКМ V4.0 не успеет обработать предыдущий экспорт данных из торговой системы до готовности нового, следует организовать очередь сигналов и данных. Для этого используется поле version, хранящее номер версии данных (номер экспорта данных из торговой системы).
Поле version хранится в каждой таблице данных и таблице сигналов. При подготовке данных поле version заполняется значением счётчика. При формировании сигнала поле signal.version имеет тоже самое значение, что и в данных. То есть, если к моменту готовности новой порции данных конвертер СуперМаг-УКМ V4.0 сообщает, что находится в процессе импортирования данных, либо не приступал к импортированию предыдущих данных, то необходимость в приостановке экспорта данных из торговой системы отпадает. В этом случае торговая система увеличивает номер версии на 1 и формирует новый пакет.
Полная и частичная загрузка данных
Стандартный конвертер поддерживает полную и частичную загрузку данных в СуперМаг-УКМ V4.0. В случае полной загрузки данные импортируются в СуперМаг-УКМ V4.0 без сохранения предыдущего состояния.
В случае частичной загрузки следует выделять две операции: добавление новой (или корректировка старой) и удаление записи. В последнем случае в поля delete в таблице данных установить значение «1». Значения всех полей, кроме ключевых, при удалении роли не играют. Эти поля могут оставаться пустыми или иметь значение по умолчанию.