Зеннопостер и зеннодроид не могут поделить между собой блокнот???

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 444
Благодарностей
1 287
Баллы
113
Доброго времени суток. Нужно было запустить зеннопостер и зеннодроид одновременно и один и второй проверяет один и тот же блокнот.txt на задание и при наличии - берет строку с удалением и добавляет в блокнот ответ коллеге.

Но дело в том, что даже использовав lock и в зеннодроиде и в зеннопостере - у них лок оказывается разный + теряются данные из блокнота.... Т.е. зеннодроид может вставить в блокнот задание для бота с зеннопостера, а бот в зеннопостере будет проверять в этот момент блокнот в многопотоке даже в локе - задание может испариться и зеннопостер даже его не увидит...

Может кто встречал такие чудеса и есть ли выход синхронизовать блокнот между зеннодроид и зеннопостером? Или тут только решается задача через базу данных MySQL?
 

Dr.Pipetka

Client
Регистрация
12.12.2017
Сообщения
1 236
Благодарностей
804
Баллы
113
Базовые процессы разные и лок разный. А вообще, зенка с файлами не умеет работать. Даже банально удались фал это для нее сложно.
Думаю что дройд и постер только через БД адекватно получится.
 
  • Спасибо
Реакции: Gunjubasik

radv

Client
Регистрация
11.05.2015
Сообщения
3 681
Благодарностей
1 864
Баллы
113
Но дело в том, что даже использовав lock и в зеннодроиде и в зеннопостере - у них лок оказывается разный
Ну это естественно, разные программы, разные локи. Используйте базы данных.
 

Anatoly79

Moderator
Регистрация
17.04.2020
Сообщения
378
Благодарностей
269
Баллы
63
даже использовав lock и в зеннодроиде и в зеннопостере - у них лок оказывается разный
Для межпроцессного лока между Зеннопостером и Зеннодроидом можно использовать мьютекс или именованный семафор.
В данном случае для простой записи/считывания из файла в локе достаточно мьютекса.

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

Вложения

  • Спасибо
Реакции: Dr.Pipetka

Dr.Pipetka

Client
Регистрация
12.12.2017
Сообщения
1 236
Благодарностей
804
Баллы
113
Для межпроцессного лока между Зеннопостером и Зеннодроидом можно использовать мьютекс или именованный семафор.
В данном случае для простой записи/считывания из файла в локе достаточно мьютекса.

Не знаю какая логика обмена сообщениями, простейший вариант - считываем содержимое, пишем ответ - выглядит примерно как в прикрепленных шаблонах для Постера и Дроида. Вставил паузу 5сек, чтобы было видно, что пока один поток читает/пишет файл, другой поток ждет. В реальной задаче паузу нужно конечно убрать.
Крутая штука, спасибо.
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 444
Благодарностей
1 287
Баллы
113
Для межпроцессного лока между Зеннопостером и Зеннодроидом можно использовать мьютекс или именованный семафор.
В данном случае для простой записи/считывания из файла в локе достаточно мьютекса.

Не знаю какая логика обмена сообщениями, простейший вариант - считываем содержимое, пишем ответ - выглядит примерно как в прикрепленных шаблонах для Постера и Дроида. Вставил паузу 5сек, чтобы было видно, что пока один поток читает/пишет файл, другой поток ждет. В реальной задаче паузу нужно конечно убрать.
Снизьте пожалуйста версию зенно.
 

Anatoly79

Moderator
Регистрация
17.04.2020
Сообщения
378
Благодарностей
269
Баллы
63
  • Спасибо
Реакции: Gunjubasik

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)