Size: a a a

Сообщество Python Программистов

2020 May 03

SS

Sergey Samoilenko in Сообщество Python Программистов
Alexander
а в главном или одном отдельном треде тебе всего лишь нужно запустить обработку оереди, и складывать данные в БД
+
источник

A

Axenia in Сообщество Python Программистов
segrwolf (0) увеличил карму borntohack (596.84)
источник

ПЯ

Просто Ярик... in Сообщество Python Программистов
Просто Ярик
t = type
k = lambda x: lambda _: x
что если использовать их как аргументы?
источник

A

Alexander in Сообщество Python Программистов
для понимания, почему все не работает так, как ты хочешь - представь, что 4 разных треда проверяют один и тот же сайт, при этом два говорят, что он работает, а два говорят, что он НЕ работает. Что запишется в базу?
источник

AT

Alexander T in Сообщество Python Программистов
Просто Ярик
что если использовать их как аргументы?
я этим и занимаюсь
источник

ПЯ

Просто Ярик... in Сообщество Python Программистов
оно же подразумевается, что если будем писать t, то будет работать функция type
источник

ПЯ

Просто Ярик... in Сообщество Python Программистов
Alexander T
я этим и занимаюсь
k(
'\
H\
e\
l\
l\
o\
,\
\
w\
o\
r\
l\
d\
!'
)
тогда можно сделать вот так
источник

AT

Alexander T in Сообщество Python Программистов
Просто Ярик
k(
'\
H\
e\
l\
l\
o\
,\
\
w\
o\
r\
l\
d\
!'
)
тогда можно сделать вот так
и дальше чего? проблема в том, что лямбда которую нам дают требует аргумента, а в тестах он везде вызывает f()
источник

A

Alexander in Сообщество Python Программистов
Sergey Samoilenko
пока сложно понять мне - но щас буду смотреть/учить - спасибо !
фактически, можно сказать, что придет 4 конкуррентные транзакции с разными данными. Это называется Race Condition или "состояние гонки". Вот чтобы это исключить - в питоне есть Global Interpreter Lock, который блокирует выполнение транзакций на одном и том же IO дескрипторе для разных тредов. Пока твой курсор ждет разблокировки, коннекшн отваливается по таймауту
источник

SS

Sergey Samoilenko in Сообщество Python Программистов
Alexander
фактически, можно сказать, что придет 4 конкуррентные транзакции с разными данными. Это называется Race Condition или "состояние гонки". Вот чтобы это исключить - в питоне есть Global Interpreter Lock, который блокирует выполнение транзакций на одном и том же IO дескрипторе для разных тредов. Пока твой курсор ждет разблокировки, коннекшн отваливается по таймауту
примерно - теорию я понял 🙂 осталось вкурить это на практике так - чтобы я четко это прочувствал 🙂 спасибо огромное за пояснение... уже читаю примеры
источник

SS

Sergey Samoilenko in Сообщество Python Программистов
Alexander
фактически, можно сказать, что придет 4 конкуррентные транзакции с разными данными. Это называется Race Condition или "состояние гонки". Вот чтобы это исключить - в питоне есть Global Interpreter Lock, который блокирует выполнение транзакций на одном и том же IO дескрипторе для разных тредов. Пока твой курсор ждет разблокировки, коннекшн отваливается по таймауту
А пинговать соединение с базой перед тем как обращаться к ней -не вариат ? : def get_cursor():
   
try:
       connection.ping(reconnect=
True, attempts=3, delay=5)
   
except mysql.connector.Error as err:
       
# reconnect your cursor as you did in init or wherever    
       
connection = init_db()
   
return connection.cursor()
источник

A

Alexander in Сообщество Python Программистов
это хороший тон, но для ситуации с race condition не подходит
источник

A

Alexander in Сообщество Python Программистов
точнее, саму ситуацию не исправит
источник

SS

Sergey Samoilenko in Сообщество Python Программистов
Alexander
это хороший тон, но для ситуации с race condition не подходит
печаль, спасибо!
источник

A

Alexander in Сообщество Python Программистов
просто архитектурно представь, что 100 клиентов одновременно что-то пишут в базу
источник

A

Alexander in Сообщество Python Программистов
если с базой сложно представить - представь, что в один и тот же эксель файл
источник

A

Alexander in Сообщество Python Программистов
что будет со строками на выходе?
источник

A

Alexander in Сообщество Python Программистов
получится ли обеспечить правильный порядок?
источник

SS

Sergey Samoilenko in Сообщество Python Программистов
Alexander
просто архитектурно представь, что 100 клиентов одновременно что-то пишут в базу
да, тут согласен конечно
источник

A

Alexander in Сообщество Python Программистов
так что организуй очередь)
источник