Pavlenko_Pigmalion, я в итоге вручную написал все.
У меня есть данные в приложении и база данных mysql на сервере.
Допустим я создаю заметку, то создаю ее локально и отправляю post на сервер для создания точно такой же в бд.
Если интернета нет, то пишу пользователю что сохранится только на телефоне.
Далее когда захожу на листинг заметок, вывожу заметки которые сохранены локальны. Далее делаю запрос на сервер, получаю список от туда и сравниваю. Если на сервере есть данные а локально нет, то добавляю их локально. Если локальное есть данные, а с сервера они не пришли, то делаю запросы на сервер на создание. Ну и так же сравниваю и удаляю.
муторно конечно, но в моем случаю было самым оптимальным.
Сейчас использую async-storage, который просто записывет ключ-значение, чего мне вполне предостаточно.
Нужно чтобы просто приложение записало ключ-значение и отправил его на сервер, а если нет интернета, отправила данные на сервер когда интернет появится и все)
rPman, ну мне кажется проще сделать стек http-запросов, который выполнится когда появится интернет, чем синхрлнизацию sqlite и mysql. я подумал, что кто-то подскажет готовые реализации этой логии.
но все-равно спасибо)
Валентин В., я на самом деле так и делаю. И при sidekiq:install у меня создается 2 сервиса. Проблема в том, что когда я выполняю sidekiq:stop или sidekiq:start он останавливает сервис sidekiq.service, а когда запускаю sidekiq:restart, тогда уже как надо sidekiq@1.service и sidekiq@2.service
Сергей Горностаев, а может наоборот сейчас все толковые программисты уедут за границу. нужно будет развивать свои сервисы и наоборот будет не хватать? В любом случае можно учить английский и работать за рубежом.
Román Mirilaczvili, именно этот гем?
ну я больше не нашел других для capistrano и sidekiq. В целом то удобно, что можно быстро одним гемом настроить рестарт sidekiq.
Александр Петров, на самом деле в целом в целом может можно и закрыть вопрос. Просто сам гем написан немного не правильно. Там в исходниках как раз видно, что restart перебирает процессы, а start/stop запускает команду как-будто у нас один процесс.
Román Mirilaczvili, ну там написано что журнал какой-то не правильно работает. это не про мою проблему.
Проблема в общем в том, что я настроил сервисы для нескольких процессов sidekiq: sidekiq@1.service .. sidekiq@i.service
Когда я выполняю команду cap production sidekiq:start, то на сервере запускается команда systemctl --user start sidekiq, то есть он запускает настройку одного процесса.
А если я выполняю cap production sidekiq:restart, то как раз гем перебирает количество процессов и поочередно останавливает и запускает все сервисы.
Мне нужно чтобы когда я выполняю отдельно stop или start, гем тоже выполнял работу со всеми сервисами, а не с одним.
В общем мне кажется мы не туда ушли в итоге. Я думаю не суть зачем мне нужно несколько процессов. Давайте примем за факт, что нужно)
у меня получается есть 4 процесса загрузчика (loader_n). Каждому процессу я отдаю скоп задач, которые должны выполниться ровно друг за другом.
За счет того, что на каждом процессе один поток, я гарантирую, что задачи выполнятся друг за другом. А за счет нескольких процессов, я могу запараллелить выполнение этих потоков задач.
1) sidekiq@1.service и sidekiq@2.service создает сам гем capistrano-sidekiq, когда запускаю sidekiq:install
2) потому что стандартно гем при выполнении задачи sidekiq:start запускает только один процесс. а при запуске sidekiq:restart он перебирает процессы и запускает конкретно sidekiq@1.service .. sidekiq@#{i}.service.
Видимо это ошибка гема.