| |||
![]()
|
![]() ![]() |
![]()
Я в каком-то виде довел до ума свой вариант lj-gate. Там причесан код (как мне кажется - довольно аккуратно) и избавлено от затеи с -10 минут (и фиксированного сдвига по времени). Ставить это сейчас не стоит, собака еще молодая, но я был бы признателен, если бы компетентные товарищи посмотрели на это дело и решили, что с этим делать дальше и стоит ли чего-то делать. Известные проблемы: в режиме только гейтования все должно быть хорошо, но если пользователь запостит в LJ-шный дневник постиннг руками - вероятно будут проблемы с backdate. Так же syncitems идейно правилен (с ним логика куда прозрачнее), но видимо нежелателен по соображеням эффективности. Ну и возможны глюки. Я бы не стал это сейчас посылать, но я завтра на несколько дней опять отваливаю и мне хотелось бы хотя бы минимального feedback'a. Upd:Кстати - тормозит гейт, скорее всего, потому что он каждые 10 минут должен опросить все трансляции, а сделать это кроме как тупо спросив про каждую, никак невозможно. Я думаю, что это и жрет основное время - постит любой человек гораздо реже. То есть у человека максимум 5 постингов в день - а запросов на него выдается за день почти 6*24=144. Так что syncitems вероятно можно и не выкидывать. А вот если дополнить функциональность syncitems возможностью спросить сразу про пачку пользователей я думаю, проблема вполне решится (его еще бы не помешало и нотификацией о удалениях дополнить - о новых комментах он вроде сообщает, хотя дока и утверждает, что это не реализовано). README: ---------------------- lj-gate.pl - собственно главная программа Util.pm - набор пользушных функций для работы с клиентским протоколом LJ LJDB.pm - набор функций для доступа к БД гейта add.pl - переписан с использованием LJDB.pm Изменения в формате БД: добавлена колонка last_sync char (30) в таблицу rlj2lj. Если в этом поле содержится NULL, в качестве времени последний синхронизации берется текущий момент. Соотвественно - должно быть достаточно ее создать в таблице. Другие изменения:пересажено на syncitems. Идеологически это правильно, практически - вероятно добавит тормозов (ибо каждая запись при этом берется отдельным запросом). По-видимому, это надо херить, но сначала вероятно есть смысл попробовать перелезть на плоский протокол. |
||||||||||||||
![]() |
![]() |