Допустим, у меня есть 100 серверов, каждый из которых запускает демон - позволяет называть его server
- этот сервер отвечает за размножение потока для каждого пользователя этой конкретной службы (скажем, 1000 потоков на сервер). Каждые N
секунд каждая нить делает что-то и получает информацию для этого конкретного пользователя (эта модель запроса/ответа не может быть изменена). Проблема у меня есть иногда зависает и останавливается что-то. Мне нужно каким-то образом узнать, что данные пользователей устарели, и их необходимо обновить.Модель распределенного сервера
Единственная идея, у меня есть каждая 5N
секунды есть нить обновить запись MySQL, связанную с этим пользователем (а last_scanned
столбца в таблице пользователей), и другой процесс, который проверяет, что таблица каждые 15N
секунд, если last_scanned
колонка не текущий, перезапустите поток.
Когда поток перестает что-то делать, это ожидаемое поведение или из-за ошибки? – Jordan
Из-за ошибки - я должен указать, что зависает нить (и да, я также должен исправить ошибку, так что это не произойдет в первую очередь, но давайте проигнорировать это) – v0idless