
zombic
19.05.2018
22:53:01
всмысле создать свой пул

Jentry
19.05.2018
22:53:22
ога, и mount нажать
https://stackoverflow.com/questions/18466079/can-i-change-the-connection-pool-size-for-pythons-requests-module
10 по умолчанию, ты можешь как раз упираться в это
https://github.com/requests/requests/blob/master/requests/adapters.py#L111

zombic
19.05.2018
22:56:22
спасибо, сейчас попробую

Google

zombic
19.05.2018
23:05:11

Jentry
19.05.2018
23:05:47
Пожалуйста, а если оставишь фидбек, сколько ткнул и насколько полегчало, то тебе в чатике тоже спасибо скажут

zombic
19.05.2018
23:08:07
`r = requests.session()
adapter = requests.adapters.HTTPAdapter(pool_connections=100, pool_maxsize=100, max_retries=0, pool_block=False)
r.mount('https://', adapter=adapter)`
добавил
и скорость почти как без прокси

Jentry
19.05.2018
23:09:25
а, ну круто, сотни обычно достаточно, они просто берегут память, ставя десяточку и неловкую подножку тем, кто этого не знает

zombic
19.05.2018
23:45:25
поменял pool_maxsize на 1 и добавил r.close() и все еще быстрее стало

Jentry
19.05.2018
23:48:58
чот непонятно, ты по разным адресам стреляешь что ли?
вангую, что стреляешь также в один поток

zombic
19.05.2018
23:53:28
по одному адресу
разными потоками

Jentry
19.05.2018
23:53:55
ладно, ванга мод не сработал, но ты где-то обманываешь себя или нас)
либо это проблема принимающей стороны и ты просто завалил ее, что тоже возможно

Google

zombic
19.05.2018
23:55:00
ну pool_maxsize=1 значчит каждое подключение будет создавать новое в пуле нет?
или я не так понял эти пулы?

Jentry
19.05.2018
23:58:43
не правильно, но я удивлен результату, если это правда
с pool_maxsize=1 ты грубо говоря отрубил потоки и все потоки ходят через одно реюзабельное соединение, которое ты к слову тут же закрываешь после запроса
короч дичь какая-то, тебе нужен keep_alive и больше pool_maxsize, это в теории
https://laike9m.com/blog/requests-secret-pool_connections-and-pool_maxsize,89/

zombic
20.05.2018
00:01:20
то что не один поток это 100%

Jentry
20.05.2018
00:03:55
окей, наверни дебаг-логов и посмотри, что в точности происходит, у тебя сейчас на каждый чих будет Starting new connection поди что
из доков urllib3
>If you’re planning on using such a pool in a multithreaded environment, you should set the maxsize of the pool to a higher number, such as the number of threads.
нажми в общем и сам посмотри, я отключаюсь logging.basicConfig(level=logging.DEBUG)
хехе, ну да, как же оно тогда могло стать быстрее, если у тебя идет оверхед на хендшейк, ты где-то в измерениях обманулся

zombic
20.05.2018
00:11:56
походу да

Joss
20.05.2018
00:19:24
и стоило замазывать если все видят домен?

Jentry
20.05.2018
00:39:52
походу да
глянь еще как треды используешь, вдруг в цикле запускаешь и join'ишь

zombic
20.05.2018
00:41:34
for i in range(int(thr_count)):
threading.Thread(target=login, args=()).start()
time.sleep(0.05)
да скорость меня устраивает впринципе сейчас
но хотелось бы понять что такое этот пул

Jentry
20.05.2018
00:47:02
в твоем случае все просто, у тебя один домен, значит тебе подойдет 1 pool_connections, больше не нужно, у тебя N потоков, значит, нужно pool_maxsize=N. Если поставить N < количества потоков, то начнешь наблюдать переполнение пула и дичайшие фризы. В твоем случае запросов еще, видимо, мало, поэтому тебе удалось отключить пул и не наблюдать проседания на шендшейках.

zombic
20.05.2018
00:55:10
Вроде понял

Google

Pheezrook
20.05.2018
04:40:11
Подскажите возможно ли определить как был запущен файл.py даблкликом в проводнике или из консоли?
и жлательно делать это стандартной библиотекой

slair
20.05.2018
04:45:09
ps aux и греп по командлайнам процессов
а по уму, в файл.py ставишь флаг/лок что он запущен, и его потом анализируешь если надо
гугли qt single instance там есть способы

Old
20.05.2018
05:22:00
мультипоточность вообще часто юзается в питоне/?

slair
20.05.2018
05:23:02
через GIL часто

Maxim robox
20.05.2018
06:27:48
Тут не хватает названия таблицы в итоговом запросе.

Oleg
20.05.2018
06:51:25
Ты его в recent нашёл? )))

Maxim robox
20.05.2018
07:02:11

Dmitriy
20.05.2018
07:06:39
Парни всем привет))

Stanislav
20.05.2018
07:08:36

Dmitriy
20.05.2018
07:09:27

Маришка
20.05.2018
08:13:40
@gloomy_philosopher

UzAdminBoss
20.05.2018
08:14:05

Проксимов
20.05.2018
08:22:34

Дмитрий
20.05.2018
08:51:15
всем доброго времени суток, посоыеиуйие с чего начать новичку?

Ross
20.05.2018
08:51:35

Alexander
20.05.2018
09:50:25
Привет всем. Кто сталкивался с несоответствием сигнатуры API. СКрипт пишу на питоне, а сигнатуру сверяю с сигнатурой на PHP. OrderedDict json.dumps(p2, separators применил и все равно сигнатуры не совпрадают. присутствуют api_secret, api-key, nonce (я сделал его постоянным)

Google

Denis
20.05.2018
09:51:16

Alexander
20.05.2018
09:51:31
???

Denis
20.05.2018
09:51:54
Что чему несоответствует?
А, это опять ты

Димон
20.05.2018
09:52:36
И сразу всё понятно будет
Пробелы добавил, например?

Alexander
20.05.2018
09:54:14
json.dumps(p2, separator =(',', ':')) их добавляет
json.dumps - а как можно получить ?

Denis
20.05.2018
09:55:55
print

Димон
20.05.2018
09:56:02
:)

Alexander
20.05.2018
09:56:22
ну да ...
)))
да пробелы ухдалены
но сигнатуры по прежнему не совпадают
а какие еще могут быть ошибки?

Denis
20.05.2018
10:04:19
Выведи строки и сравни посимвольно
Прям репр выведи

Alexander
20.05.2018
10:05:09
841c0fde7d211928db38e76a96b75246cb896dc19b33ec649bfd50122a41b962
это пхп

Google

Denis
20.05.2018
10:05:24
Не этот, а самих строк

Alexander
20.05.2018
10:16:48
print(json.dumps(p2, separators=(',', ':')).repr()) ?
repr() конечно
не пишутсянижние подчерчивания(

Denis
20.05.2018
10:20:02
Можно и так, да

Alexander
20.05.2018
10:21:08
посимвольно разницы нет (пробелов тоже нет

Denis
20.05.2018
10:21:28
А потом что с ними делаешь?

Alexander
20.05.2018
10:21:46
hmac.new(api_secret, message, digestmod=hashlib.sha256).hexdigest()
requests.post(url, params, signature)

Denis
20.05.2018
10:22:02
А в пхп?

Alexander
20.05.2018
10:22:11
знерщт3
python3
1 сек
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => 'https://ex.nxboost.com/api/balances-and-info',
CURLOPT_USERAGENT => 'Codular Sample cURL Request',
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => [
'api_key' => апи ключ,
'nonce' => time(),
'market' => NXB,
'signature' => $signature
]
]);
$res = curl_exec($curl);
$blockData = json_decode($res, TRUE);
print_r($blockData);
print_r($blockData['']['']);

Denis
20.05.2018
10:39:25