Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет kouzdra ([info]kouzdra) в [info]ljr_dev
@ 2005-07-29 23:22:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Я в каком-то виде довел до ума свой вариант 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. Идеологически
это правильно, практически - вероятно добавит тормозов
(ибо каждая запись при этом берется отдельным запросом).

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


(Добавить комментарий)


[info]yushi
2005-07-30 03:48 (ссылка)
Начал смотреть код. Офигительно! Какой он стал аккуратный… спасибо!

Код ЖЖ-клиентов на Perl, который я видел, куда корявее и тупее. А ваши модули, похоже, пригодятся не только в гейте.

Пока только один вопрос, очень мелкий: $no в подпрограмме sync_journals — это просто счётчик скопированных постингов? А зачем он нужен?

Мы с Катериной тоже уезжаем на выходные, а в начале следующей недели надо будет поднять новую версию на тестовом сервере.

(Ответить) (Ветвь дискуссии)


[info]kouzdra
2005-07-30 13:32 (ссылка)
Счетчик - рудимент. Было нужно для отладочной печати. Я, к сожалению, приеду несколько позже выходных. Видимо в понедельник вечером-вторник. Если что - пишите.

(Ответить) (Уровень выше)