2012-06-25 5 views
4

Я подключаюсь к API twitter с использованием драгоценного камня tweetstream, как показано на рисунке here. Он отлично работает, но когда я останавливаю и перезапускаю поток, когда я меняю способ обработки потока, примерно через 5 часов перезагрузки более 2 часов поток прекращает давать мне обновления, а событие on_reconnect происходит каждые 30 секунд или так.Tweetstream перестает работать

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

+0

Вы решили эту проблему? Любые указатели? – user2398029

ответ

2

Я не совсем уверен, как на причину моей проблемы, но это то, что я сделал:

  • Обновление библиотеки (обновление расслоения). Обсуждение вопросов github, по-видимому, означало, что базовый камень EventMachine, возможно, имел ошибку, вызывающую проблемы с подключением, которая была исправлена ​​в последней версии.

  • Убедитесь, что ваше системное время реалистично. По крайней мере, однажды мое системное время, которое не синхронизировалось с интернет-часами, проползло более чем на 30 минут от реального времени, а мои токены запроса были отклонены как недействительные (истекшие или подписанные в будущем).

  • Оберните устройство чтения потока в Daemon. Дайте демону {:monitor => true}, чтобы он перезапустил задание, если он когда-либо умирает. Это происходит несколько раз в неделю на моем сервере с ошибкой тайм-аута (я предполагаю, что сбои службы API-интерфейса или мое собственное интернет-соединение выходят из строя). Это больше похоже на групповую помощь, потому что она не должна действительно умирать в первую очередь, но она значительно продвигает эту проблему в моем списке приоритетов, о котором я сейчас не беспокоюсь.