Здравствуйте
Есть задача с подводными камнями. Суть такова:
Имеем базу данных: В базе данных находятся таблицы, причём на каждый день таблица своя. Имена таблиц имеют вид table_2015_08_21, table_2015_08_22, etc...
В таблицу, в реальном времени, валится непрерывный поток данных. Каждая таблица имеет первичный уникальный ключ id. На колонке автоинкремент. В пределах суток id естественно, всегда уникален.
Имеем некий скрипт: Задача скрипта, вытаскивать свежеупавшие в таблицу данные раз в 15 секунд. Данные затем идут на обработку куда-либо. Алгоритм извелечения данных работает следующим образом:
PHP:
скопировать код в буфер обмена
while(true) { // Первый запуск { $start_id = 1; } // Получаем порцию данных $data = $db -> select('SELECT * FROM ' . $table . ' WHERE id >= ' . $start_id; if ($data) { $start_id = $data[count($data)-1]['id'] // process_data($data); } }
Задача: Реализовать переключение скрипта на новую таблицу, в полночь (при смене дня), без потерь данных. Задача нетривиальная, и простая лишь на первый взгляд . Я вот голову сломал.
|