Tornado Sockets Подтверждение диалога PHP / MySql

Я создаю приложение, которое использует комбинацию Tornado Web Server и Symfony.

Часть торнадо использует сокеты и запрашивает базу данных каждые 1000 мс и проверяет, не отличается ли она от того, что в данный момент хранится в кэше (вроде как redis или memcache).

Если в паре ключ-значение есть что-то другое, то он запускает запрос javascript, чтобы доставить новую информацию в приложение symfony, и запускает диалоговое окно jquery ui, говорящее «Привет, твоя очередь», а затем ждет ввода от пользователя, чтобы изменить mysql. базы данных, а затем он снова запускает весь процесс и отправляет сообщение «Somethings Changed» другому пользователю.

Проблема, с которой я сталкиваюсь, заключается в том, что иногда диалоговое окно не запускается, поскольку оно получает сообщение «Somethings Changed», которое является пустым.

Я думаю, что происходит потому, что Symfony и Tornado манипулируют базой данных, и сообщение «Somethings Changed» запускается до того, как диалоговое окно появляется в приложении Symfony.

Я пытаюсь найти способ узнать, был ли открыт определенный диалог jquery во время обновления, и если он не был открыт, отправьте сообщение для обновления снова.

Одна из идей состоит в том, чтобы обновить базу данных в Tornado со случайным числом, а затем, когда откроется диалоговое окно, установить этот cookie на это случайное число. Если cookie соответствует записи в базе данных, это означает, что был замечен соответствующий диалог. Если он не совпадает, снова запустите принудительное обновление.

Я здесь далеко от базы? Эта теория даже близка к тому, как это сделать?

Это последняя часть моего приложения, и она работает от 8 до 9 раз из 10

ЛЮБЫЕ идеи или предложения будут с благодарностью

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]