Лочить гугл таблицы в многопотоке C#

arbplv

Client
Регистрация
28.03.2020
Сообщения
373
Благодарностей
23
Баллы
18
Есть десятки ботов, работают в многопотоке, задача стоит записывать данные в гугл табличку, раз в сутки, буквально 3-4 строчки, как реализовать лок именно гугл таблиц, чтобы не получилось что в один момент записали 2 бота и появились ошибки.
глобалки я лочу вот так
C#:
lock(SyncObjects.ListSyncer)
    {
        тут мои глобалки
    }
читал на форуме что списки и таблицы можно лочить вот так
C#:
using (FileSyncObjects.ListSyncer.Lock())
    {
        project.Lists["название_списка"].Add("добавляемая_строка");
    }
С гугл таблицами как правильно работать?
спасибо
 
  • Спасибо
Реакции: GREXA

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113

arbplv

Client
Регистрация
28.03.2020
Сообщения
373
Благодарностей
23
Баллы
18

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113
Галка поможет когда в одну таблицу добавляют данные сразу несколько копий программы (например несколько парсеров на разных серверах).
В коде лочить тоже надо, чтоб не было проблем при многопоточной работе в рамках одной программы (когда шаблон работает многопоточно на одном компьютере).
 

arbplv

Client
Регистрация
28.03.2020
Сообщения
373
Благодарностей
23
Баллы
18
Галка поможет когда в одну таблицу добавляют данные сразу несколько копий программы (например несколько парсеров на разных серверах).
В коде лочить тоже надо, чтоб не было проблем при многопоточной работе в рамках одной программы (когда шаблон работает многопоточно на одном компьютере).
вот это меня и интересовало у меня куча ботов на одном шаблоне (точнее не один бот в многопотоке, а шаблон скопирован 10 раз и каждый работает в 1 потоке со своей проксей, но на одной машине), как правильно в таком случае лочить? как я выше писал? там все корректно?
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113
вот это меня и интересовало у меня куча ботов на одном шаблоне (точнее не один бот в многопотоке, а шаблон скопирован 10 раз и каждый работает в 1 потоке со своей проксей, но на одной машине), как правильно в таком случае лочить? как я выше писал? там все корректно?
Используйте стандартный объект для лока
C#:
lock (SyncObjects.TableSyncer)
{
    // тут код
}
Если одна из копий войдёт в лок, то остальные будут ждать.
 
Последнее редактирование:
  • Спасибо
Реакции: arbplv и GREXA

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