TrackChecker
https://forum.trackchecker.ru/

Синхронизация копий программы (по локал.сети и не только)
https://forum.trackchecker.ru/viewtopic.php?f=14&t=137
Страница 2 из 4

Автор:  guru [ Вс дек 23, 2012 4:45 pm ]
Заголовок сообщения:  Re: Синхронизация копий программы (по локал.сети и не только

guru писал(а):
С ЯндексДиском не получилось. Вроде все нормально, но периодически обновленные файлы не сохраняются на сервер.Синхронизация срабатывает через раз. Появляются копии файлов с индексами (2), (3)...Файл tc_close не помог. Он, почему-то, удаляется.

Каждый раз создавать ручками файл tc_close не удобно. И не понятно, из-за его отсутствия проблемы, или по какой-то другой причине.
Я нашел для себя другое решение, завтра опробую:
guru писал(а):
Ладно, воткну в роутер флешку с прогой, расшарю и буду по сети запускать.А кто в разных сетях пользует, носите флешку с собой.

Автор:  MetalFan [ Вс дек 23, 2012 4:58 pm ]
Заголовок сообщения:  Re: Синхронизация копий программы (по локал.сети и не только

guru писал(а):
Каждый раз создавать ручками файл tc_close не удобно.
А какие могут быть еще варианты? как "просигналить" другим копиям приложения, что им надо закрыться? Можно конечно ВСЕГДА создавать его при старте программы, ждать, к примеру, минуту, удалять и после этого стартовать...

А вообще, не вижу в чем проблема... попользовался программой - закрыл)

Автор:  POMAH007 [ Вс дек 23, 2012 5:20 pm ]
Заголовок сообщения:  Re: Синхронизация копий программы (по локал.сети и не только

guru писал(а):
POMAH007 писал(а):
Флешку прекрасно замещает облачный сервис.

Как оказалось, не замещает.
ЯндексДиск - облачный сервис, не проканал.

Фсад Яндекс! Переходите на Дропбокс. Проверено - работает. Правда, флешкой его назвать не совсем правильно, поскольку он синхронизирует копии назначенного каталога на диске. С ним нельзя зайти в первый попавшийся кафевафлю и запустить оттуда трекчекера.
Есть ещё Гуглодиск, но его я не пробовал.

Автор:  eLsIe [ Вс дек 23, 2012 5:28 pm ]
Заголовок сообщения:  Re: Синхронизация копий программы (по локал.сети и не только

"Я может сейчас глупость скажу" (C) А зачем вообще нужно иметь одновременно работающие копии программы? Для лишней нагрузки на сервисы? Сами мы-то не вездесущи, находимся где-то в одном месте - вот там и запусти/проверь/посмотри/закрой программу...

Автор:  guru [ Вс дек 23, 2012 5:50 pm ]
Заголовок сообщения:  Re: Синхронизация копий программы (по локал.сети и не только

MetalFan писал(а):
А вообще, не вижу в чем проблема... попользовался программой - закрыл)

Я так и делал. У меня при тестировании ЯндексДиска ни разу не работало одновременно 2 копии программы, но глюки все равно возникали регулярно. Видимо в данном случае не подходит сам принцип работы ЯД. Кому очень нужно, можно попробовать другие подобные сервисы. Я же пользуюсь в локалке, поэтому решу вопрос по-своему.

Автор:  POMAH007 [ Вс дек 23, 2012 5:57 pm ]
Заголовок сообщения:  Re: Синхронизация копий программы (по локал.сети и не только

eLsIe писал(а):
вот там и запусти/проверь/посмотри/закрой программу...

Есть такая болезнь. На "с" начинается и на "с" заканчивается. Склерос! :)

Автор:  guru [ Вс дек 23, 2012 6:34 pm ]
Заголовок сообщения:  Re: Синхронизация копий программы (по локал.сети и не только

MetalFan писал(а):
А какие могут быть еще варианты? как "просигналить" другим копиям приложения, что им надо закрыться? Можно конечно ВСЕГДА создавать его при старте программы, ждать, к примеру, минуту, удалять и после этого стартовать...

Можно сделать следующим образом:
Нужно поменять tc_close на tc_open
Код:
При старте программа ищет в папке tc_open
Если не находит:
   Создает tc_open сама и спокойно запускается
   При работе постоянно проверяет присутствие tc_open
      Если он исчез/удален программа закрывается (не создавая tc_open)
Если находит:
   Выдает сообщение_
           "Найден файл tc_open. Возможно запущена еще одна копия программы."_
            и 2 кнопки "Закрыть все кроме этой" + "Выход"
      Нажато "Выход"
         Выход из программы
      Нажато "Закрыть все кроме этой"
         Удаляется tc_open
         Программа запускается
         Запускается таймер (~1 мин), по истечении которого создается новый tc_open_
               и включается слежение за ним
                      Если он исчез/удален программа закрывается (не создавая tc_open)
         Эту минуту программа работает в режиме чтения
При закрытии вручную или системой(при отключении ПК) программа удаляет tc_open

Почему нельзя для этого использовать tc_close:
Потому, что у большинства пользователей вероятность работы старой копии программы мала. Только если программу или компьютер случайно забыли выключить. А при использовании tc_close, программа при каждом запуске будет ждать минуту или работать эту минуту в режиме чтения, чтобы не вызвать сбой или ошибку в файлах базы.
Вариант же с tc_open запускается с предупреждением (а после на 1 мин. в режиме чтения) только когда есть явный знак, что запущена копия (или программа некорректно завершена). Этим знаком и является присутствие в папке файла tc_open.

Автор:  MetalFan [ Вс дек 23, 2012 9:07 pm ]
Заголовок сообщения:  Re: Синхронизация копий программы (по локал.сети и не только

guru, имхо чот совсем жесть получилась) надо еще покумекать.

Автор:  guru [ Вс дек 23, 2012 10:19 pm ]
Заголовок сообщения:  Re: Синхронизация копий программы (по локал.сети и не только

MetalFan писал(а):
имхо чот совсем жесть получилась) надо еще покумекать.

Да вроде всё просто)

Автор:  POMAH007 [ Пн дек 24, 2012 5:46 am ]
Заголовок сообщения:  Re: Синхронизация копий программы (по локал.сети и не только

MetalFan писал(а):
guru, имхо чот совсем жесть получилась) надо еще покумекать.

А если другими словами? Всё-равно, это был пересказ моей идеи (guru :p) :))) :
Запускается программа и размещает в каталоге лок-файл. Следующая запускаемая программа находит лок-файл и спрашивает хозяина: "Уже запущена (где-то) программа. Запуститься (и прибить предыдущую версию) или нет?"

Автор:  guru [ Пн дек 24, 2012 5:04 pm ]
Заголовок сообщения:  Re: Синхронизация копий программы (по локал.сети и не только

POMAH007, наша задача, не выяснять, чья это была идея, а сделать так, чтобы MetalFan подумал, что эта идея его)

Автор:  MetalFan [ Пн дек 24, 2012 5:17 pm ]
Заголовок сообщения:  Re: Синхронизация копий программы (по локал.сети и не только

да идею то я понял... и объяснено вроде б норм... осталось только рассмотреть ВСЕ возможные варианты, когда предложенный алгоритм может дать сбой.

Автор:  detrin [ Ср дек 26, 2012 9:01 pm ]
Заголовок сообщения:  Re: Синхронизация копий программы (по локал.сети и не только

Мне пока не нужна синхронизация, но думаю её можно было бы сделать так:
- синхронизировать ТОЛЬКО БД, а не программу.
- в настройках указать папку для синхронизации(в частности можно указать папку ЯндексДиска, Дропбокса и т.д.)
- в меню добавить кнопку ручной синхронизации при которой текущая БД копируется в синхронизируемую папку, а также наоборот - текущая БД заменяется синхронизируемой.
- в меню добавить опцию автоматической синхронизации при выходе из программы.
- при синхронизации старые БД не удалять, а переименовывать со штампом даты, на всякий случай.
- при старте программы сверять рабочую БД и синхронизируемую БД по дате/времени - если вторая более свежая, то предложить синхронизировать её.

Данная схема будет прекрасно автоматически работать при одновременно запущенной 1 копии программы. Если копий несколько, то пользователь сам решает когда и как ему синхронизировать БД. В случае чего копии БД ему в помощь - всегда можно будет восстановить информацию.

Как мне кажется данная схема более простая, чем вышепредложенная.

Автор:  guru [ Ср дек 26, 2012 9:30 pm ]
Заголовок сообщения:  Re: Синхронизация копий программы (по локал.сети и не только

detrin, 1 копия и так спокойно должна бы работать (в портабельном режиме) на облачных дисках. Для этого доработки не нужны. Но, к сожалению, на ЯД стабильной работы добиться не удалось. На других я не пробовал. Если кто пробовал, напишите, пожалуйста, о результатах.
А вопрос стоит так: Раз одновременная работа с одной базой нескольких копий пока невозможна, то было бы неплохо осуществить закрытие(по желанию пользователя) всех запущенных программ, кроме одной. Но алгоритм нужно продумать, чтобы всё работало стабильно и пользоваться было удобно.
Судя по результатам опроса, протолкнуть эту задачу получится только, если разработчики мобильных версий реализуют возможность синхронизации с облачной базой настольной версии. Что было бы удобно и не раз уже предлагалось.
Разработчики мобильных версий, что думаете по этому поводу?)

Автор:  troff [ Чт дек 27, 2012 11:04 pm ]
Заголовок сообщения:  Re: Синхронизация копий программы (по локал.сети и не только

я просто выкидываю data.xml на гуглдиск, и забираю куда надо. при двух компах дома и одном на работе особых неудобств не испытываю.
больше напрягает невозможность синхронизации с андроидом. а на нем с гуглдиска даже файл не сохранить, только открыть какой-либо программой. кстати, как вариант - чтобы андроидная версия открывала этот файл с гуглдиска и всасывала обновления/добавления треков

Автор:  Spon4ik [ Пн авг 05, 2013 2:34 pm ]
Заголовок сообщения:  Re: Синхронизация копий программы (по локал.сети и не только

есть такая новая фишка, как BTSync, вариант как решение:
1. прога на РС (А) при включении читает БД
2. отпускает
3. если нужно внести новый трак:
3.1 открывает БД(снова)
3.2 вносит новую строку
3.3 сохраняет
3.4 отпускает
3.5 прога на РС (Б)/android, получает обновлённый БД(через дропбокс или бтсинк - не важно), но так как прога (Б) его не держит открытым, то изменения не видны
3.6 в ручную нажать на обновить...
при этом, если в программе (Б) или В/Г/Д...Я были внесены изменения, то в пункте 3.1 БД будет обновленна, и новая строка добавится уже после обновления а не до, что предотвратит потерю данных.

Автор:  Spon4ik [ Пн авг 05, 2013 3:04 pm ]
Заголовок сообщения:  Re: Синхронизация копий программы (по локал.сети и не только

дополнительный вариант:
так как вряд-ли пользователи будут держать в проге одновременно тысячи или даже сотни активных траков, то можно каждый трак вносить в виде отдельного ДБ файла, таким образом при кажом внесении нового номера, старые или правельнее сказать номера которые ещё только добавляются, не подвергаются воздействию, и не зависят друг от друга, при этом синхронизировать саму папку с базами данных, и по мере их поступления, прога авто-проверкой добавляет новые для неё строки номеров.
так как существует вероятность внесения изменений в один трак с нескольких инстанций, то можно совместить с предидущими предложениями, создав файл .темп с ID файла БД которая на данный момент находится в режиме записи, тогда на другом клиенте, нельзя будет перейти в режим записи конкретной БД, при этом другие будут доступны.

Автор:  MetalFan [ Пн авг 05, 2013 3:34 pm ]
Заголовок сообщения:  Re: Синхронизация копий программы (по локал.сети и не только

Spon4ik, жесть...

Автор:  Spon4ik [ Пн авг 05, 2013 4:01 pm ]
Заголовок сообщения:  Re: Синхронизация копий программы (по локал.сети и не только

MetalFan писал(а):
Spon4ik, жесть...
с множеством файлов наверно погорячился
но если их не много, у меня к примеру единицы, то почему нет?

Автор:  SAOPP [ Пн авг 19, 2013 8:18 pm ]
Заголовок сообщения:  Re: Синхронизация копий программы (по локал.сети и не только

Специально зашёл на форум, что бы отписаться по предложению... и увидел, что уже топик существует и люди имеют те же проблемы, что и я. :)

Сам давно ощущаю необходимость синхронизации базы с облачным хранилищем, как это сделано например в Safe In Cloud, где сколько хочешь копий ПО, как настольных, так и мобильных, и облачное хранилище на выбор, в котором содержится актуальная версия базы.

Сам же пока юзаю на обоих ПК дропбокс, где собственно и имею некоторые проблемы, особенно они возникают, если и настольный и лэптоп включены одновременно с рабочей копий трекера. Пока же, запуск приложения отложен при старте ОС на 5 минут, за это время дропбокс должен успеть обновить всё, что ему нужно, и по сути имею актуальную копию на всех ПК. Но пока же это танцы, а хочется реального результата аля Safe In Cloud. ;)

Автор:  guru [ Вт авг 20, 2013 11:55 am ]
Заголовок сообщения:  Re: Синхронизация копий программы (по локал.сети и не только

SAOPP, пока это нереально. Одновременная работа нескольких копий будет возможна только при переходе на БД

Автор:  SAOPP [ Вс авг 25, 2013 8:00 pm ]
Заголовок сообщения:  Re: Синхронизация копий программы (по локал.сети и не только

Естественно. Это и так понятно, следовательно, практически нужно начальную механику работы приложения переписывать. Но всё же, я думаю вскоре разработчики возьмётся за это, ибо на сегодня приложение, которое не умеет работать с облачными технологиями становится собственным заложником.

Неудобно ведь, добавлять трек в кучу устройств, это ведь, тоже и так, понятно. Ну, надеемся на продвижение в этом направлении. ;)

Автор:  guru [ Пн авг 26, 2013 1:06 pm ]
Заголовок сообщения:  Re: Синхронизация копий программы (по локал.сети и не только

SAOPP, согласен. Хорошобы :roll:

Автор:  detrin [ Пн авг 26, 2013 4:03 pm ]
Заголовок сообщения:  Re: Синхронизация копий программы (по локал.сети и не только

SAOPP писал(а):
Но всё же, я думаю вскоре разработчики возьмётся за это, ибо на сегодня приложение, которое не умеет работать с облачными технологиями становится собственным заложником.
Всегда есть альтернативы. Мне например проще держать домашний комп включенным, на который я имею доступ через TeamViewer. Т.к. помимо трекчекера хватает другого специфичного софта.
А TeamViewer сейчас доступен даже на Андроиде.

Автор:  SAOPP [ Пн авг 26, 2013 5:49 pm ]
Заголовок сообщения:  Re: Синхронизация копий программы (по локал.сети и не только

detrin, каждый танцует так, как ему хочется, но мне все эти бубны ненужные надоели. Есть определённая специфика действий, которыми ПО должно обладать на сегодня, учитывая тот факт, что оно (ПО) активнейшим образом развивается.

А теперь, что касается сабжа, а если приложение будет сохранять треки и информацию о них для начала в текстовом файле в облачном хранилище?

Страница 2 из 4 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/