2015-04-20 5 views
0

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

Но мне было интересно, могу ли я сделать это на основе уникальных идентификаторов Twitter для каждого твита? Что-то в форме:

if (tweet2.id > tweet1.id) { 
    // tweet2 created after tweet 1 
} else { 
    // tweet2 created before tweet 1 
} 

Возможно ли это? Если нет, я задам еще один вопрос о том, что может произойти неправильно с моей реализацией даты.

ответ

4
  • Twitter идентификаторы генерируются twitter snowflake механизмом, который представляет собой алгоритм и кластер машин для его производства. В общем случае эти идентификаторы являются последовательными, поэтому ваше сравнение будет в основном выполнено. Задача - это те идентификаторы в настоящее время> 64 бит, поэтому js усечет тех. Трюк состоит в том, чтобы использовать поле tweetXXX.id_str, которое является идентификатором , переданным в строку для сравнения.
  • Я не видел реализации вашей даты, но, вероятно, вы не сравниваете значения даты UTC. Любое сравнение, проведенное в datetime, не даст вам правильных результатов даже в масштабе ms, в то же время будет много твитов.
+0

Спасибо, хотя я немного смущен относительно сноски по этой ссылке: в математических терминах, хотя твиты больше не будут сортироваться, они будут отсортированы по k. Мы стремимся сохранить наш k менее 1 секунды, что означает, что твиты, размещенные в течение секунды друг от друга, будут находиться в пределах секунды друг от друга и в пространстве пробелов. Я буду сравнивать твиты одного пользователя за раз, чтобы они не отправляли сообщения быстрее, чем секунду. Будет ли логика сортировки сохранена? – piratemurray

+0

Ну, я только что обновил свой код и работает лучше, чем моя старая реализация. Я считаю, что для своих целей я могу быть уверен, что сравнение идентификаторов твитов и предположение, что они являются последовательными, действительно. Я собираюсь принять этот ответ. Благодаря! – piratemurray

+0

, если вы сравните твиты, опубликованные только вами, сравнение даты и времени, хотя вы сравнивали твиты, поступающие из потока твитов или что-то в этом роде. – nickmilon

Смежные вопросы