
Igor
06.03.2017
14:44:09
да хуй его знает

Tony
06.03.2017
14:44:25
ахуенно, Игорь)

53r63rn4r
06.03.2017
14:44:42
from multiprocessing.dummy import Pool
p = Pool(30)
p.map() #1
p.map_async() #2
Чем отличаются 1 от 2?

Igor
06.03.2017
14:44:43
че те 5 центов жалко

Google

Tony
06.03.2017
14:45:02
у нас акк компании

53r63rn4r
06.03.2017
14:45:14
Че те чужие 5 центов жалко?

Igor
06.03.2017
14:45:22
ггггг
https://aws.amazon.com/dynamodb/pricing/
https://aws.amazon.com/dynamodb/faqs/#What_is_a_readwrite_capacity_unit

Tony
06.03.2017
14:47:54
я это прочитал все
вопрос мой глянь

Nikolay
06.03.2017
14:56:48

Igelko
06.03.2017
15:04:05
и потом надо тыкать палкой пул емнип

CthUlhUzzz
06.03.2017
16:03:33
@Enchantner Тут снова я)0))

Nikolay
06.03.2017
16:03:43

CthUlhUzzz
06.03.2017
16:03:47
while True блокирует петлю?

Google

CthUlhUzzz
06.03.2017
16:04:40
Мне нужно, чтобы mining_subscribe не блокировал handle_miner

Nikolay
06.03.2017
16:05:53
у тебя внутри while await, так что блокировать не должно, по идее

CthUlhUzzz
06.03.2017
16:06:07
Фигушки
Он заходит в цикл, и сервер перестает читать новые сообщения

Eldar
06.03.2017
16:12:46

CthUlhUzzz
06.03.2017
16:13:44
Я пытаюсь разобраться как поступать в подобных ситуациях
Ведь оно по идее и в одном лупе должно прекрасно работать

Eldar
06.03.2017
16:14:31
Ну по идее гет джоб всегда должен давать какой-то хороший ответ, чтобы убрать while

Nikolay
06.03.2017
16:14:43

CthUlhUzzz
06.03.2017
16:15:15
Вот этот цикл все блокирует
while True:
template = ZCashBlockTemplate.from_rpc_template(await self.get_job())

Eldar
06.03.2017
16:15:48

CthUlhUzzz
06.03.2017
16:17:16
ensure_future() нужно для запуска mining_subscribe?
Или я могу просто await написать?

Nikolay
06.03.2017
16:17:56
погоди
ты хочешь несколько инстансов mining_subscribe "параллельно" запустить?

CthUlhUzzz
06.03.2017
16:18:31
Один
Но он должен работать параллельно с handle_miner

Nikolay
06.03.2017
16:19:13
тогда тебе нужен шедулер внешний, как вариант

Google

Nikolay
06.03.2017
16:19:47
засунь их оба в asyncio.ensure_future() и не пиши сразу к нему await, а дерни снаружи gather() на их оба
тогда все будет, как ты хочешь

CthUlhUzzz
06.03.2017
16:22:26

Nikolay
06.03.2017
16:23:18
ну то есть как-то так:
await asyncio.gather(
asyncio.ensure_future(mining_subscribe(writer)),
asyncio.ensure_future(handler_miner(reader, writer))]
)

CthUlhUzzz
06.03.2017
16:25:36
Да, но первая функа должна вызываться из второй

Tony
06.03.2017
16:26:00
пацаны
вас когда-нибудь увольняли?

Nikolay
06.03.2017
16:26:44

Nikolay
06.03.2017
16:26:45

CthUlhUzzz
06.03.2017
16:27:53

Nikolay
06.03.2017
16:28:22

CthUlhUzzz
06.03.2017
16:28:36
Чтобы читать сообщения

CthUlhUzzz
06.03.2017
16:28:41
КО

Nikolay
06.03.2017
16:28:48
погоди

CthUlhUzzz
06.03.2017
16:28:48
Это сокет

Nikolay
06.03.2017
16:29:02
ты дергаешь в вечном лупе функцию, в которой другой вечный луп
мне кажется, ты озалуплен

CthUlhUzzz
06.03.2017
16:29:20
Лол
Возможно

Nikolay
06.03.2017
16:29:53
я потому и говорю - у тебя два воркера, один на чтение, один на обработку

Google

CthUlhUzzz
06.03.2017
16:29:57
Там повыше уровнем обработчики исключений

Nikolay
06.03.2017
16:30:03
так?
если да - тогда запускай их параллельно и сделай между ними очередь, например
но дергать в бесконечном лупе другой бесконечный луп - это жесть
удивительно, что проц не сжирает тут же на 100%
несмотря на асинхронность

Admin
ERROR: S client not available

CthUlhUzzz
06.03.2017
16:31:39
Бля, обожаю asyncio
Заставляет задуматься о бытие

Octo@dshacks
06.03.2017
16:32:12
Кидает что не дефайнд

Роман
06.03.2017
16:33:25
ну почему же вы шлете код скриншотами, мистер Андерсон?

Octo@dshacks
06.03.2017
16:33:34
Ну...
*разводит руками*
Ну так как-то можно получить закешированный вывод?

Роман
06.03.2017
16:34:10
а по поводу кода, а где у тебя ASF определяется?

Octo@dshacks
06.03.2017
16:34:16
43 строка

Nikolay
06.03.2017
16:34:17
либо сделать глобальной переменной, либо передать в конструктор класса

Octo@dshacks
06.03.2017
16:34:25
Ок, глобальной сделаю

Nikolay
06.03.2017
16:35:08
я только не понял, нафига у тебя там вечный цикл

Google

Роман
06.03.2017
16:35:44

Octo@dshacks
06.03.2017
16:35:55
Все равно sleep(30)

Роман
06.03.2017
16:36:11
да он у тебя вроде не дойдет до while

Nikolay
06.03.2017
16:36:17
и да, сейчас скажут, что я запарил и не оригинален
но, блин, в таких задачах хорошо подходит aiohttp


Octo@dshacks
06.03.2017
16:38:01
Которая общается с другой программой
class GetHandler(BaseHTTPRequestHandler):
def do_GET(self):
global ASF
page = ''
count = 0
for bot in ASF['Bots']:
count += 1
botf = ASF['Bots'][bot]["CardsFarmer"]
if not botf['CurrentGamesFarming'] == []:
game = botf["CurrentGamesFarming"][0]
page = page + botpart % (bot, game['GameName'], game['AppID'], game[
'HoursPlayed'], game['CardsRemaining'],botf['TimeRemaining'])
else:
page = page + botpart_nothing % (bot)
self.send_response(200)
self.end_headers()
self.wfile.write(bytes(mpage % (count, infofetched, page), 'utf-8'))
return
if __name__ == '__main__':
server = HTTPServer(('', 8000), GetHandler)
print('Starting server, use <Ctrl-C> to stop')
server.serve_forever()
while 1:
global ASF
ASF = api.receiveAPI()
infofetched = strftime("%b %d %Y %H:%M:%S", time())
sleep(30)


Роман
06.03.2017
16:38:18
@Enchantner Поясни, serve_forever разве не блокирует поток?

Octo@dshacks
06.03.2017
16:38:20
што я не так сделал?
Все равно кидает еррор

Nikolay
06.03.2017
16:38:31

Octo@dshacks
06.03.2017
16:38:44
Как это обойти?

Nikolay
06.03.2017
16:39:42
што я не так сделал?
ты все не так сделал, если у тебя вызов api.receiveAPI() что-то кэширует - это плохо, не надо так делать

Octo@dshacks
06.03.2017
16:39:49
Хотя вроде надо переделать его в threaded

Роман
06.03.2017
16:40:02
Стоп, точно
тебе что нужно? получать данные от апи по таймеру?