@ru_python

Страница 9689 из 9768
Iliya
24.07.2019
08:16:37
День добрый, возникла необходимость сгенирировать много однотипных схем и предложили сделать это с помощью jinja2. Стал разбираться, но что-то не пойму, для того чтобы все нормально рисовалось надо еще веб фреймворт ставить в комплект или только либы jinja хватит. Подскажите пожалуйста, а никогда с этим не сталкивался.

Shieldy
24.07.2019
08:23:53
Добро пожаловать, @Dauren10! Не забудь ознакомиться с правилами чата. https://t.me/ru_python/802295

Google
Dauren
24.07.2019
08:24:03
Всем привет

Shieldy
24.07.2019
08:25:18
Добро пожаловать, Максим Гвоздецький! Не забудь ознакомиться с правилами чата. https://t.me/ru_python/802295

Dauren
24.07.2019
08:29:28
Как подключить во Flask другие файлы содержащие функции с роутами?

Dauren
24.07.2019
08:30:54
только через blueprint можно ?

нельзя типа import new *?

и в браузере вызвать эту функцию?

new это new.py содержащая from flask import Flask application = Flask(__name__) @application.route('/new') def new(): return 'Index Page'

Kirill
24.07.2019
08:33:20
Можно

Dauren
24.07.2019
08:33:51
но когда так делаю и перехожу site.ru/new

не работает

И
24.07.2019
08:34:37
re.findall('(\w+:\/\/\S+|\w+[\.:]\w+\S+)[^\s,\.]', "the ferf at http://test.com/erferf to be tsdfsd.com5/rtgrt/fsdfd about the sdf, sdffg to a 34544 sdffg from the V.G. sdfg https://ferferfer.com Bureau", flags=re.IGNORECASE) Почему выдает последний элемент без одной буквы?

хотя даже все элементы у которых в конце режит 1 символ

Google
Дмитрий
24.07.2019
08:38:03
только через blueprint можно ?
у тебя в основном файле создается объект приложения, и роут ты должен именно его декоратором app.route() оборачивать.

не работает
конечно, этот маршрут работает для объявленного в new.py приложения, которое даже не запущено скорее всего

Dauren
24.07.2019
08:38:48
и как надо запустить?

Дмитрий
24.07.2019
08:39:33
и как надо запустить?
посмотри мое сообщение предпоследнее

Dauren
24.07.2019
08:39:58
т.е это надо сделать в самом главном файле

?

объявить декоратор?

Дмитрий
24.07.2019
08:40:08
тебе надо как-то прокинуть объект приложения в твой new.py. или городить циклические импорты или сделать как праивльно

то есть блюпринтами

Dauren
24.07.2019
08:43:13
спасибо, сейчас попробую

Nanodesu
24.07.2019
08:55:29
Каким образом не используя сторонних библиотек() можно запустить функцию как бекграунд таску?

Вот например у меня есть функция которая что-то делает в бесконечном цикле

Nanodesu
24.07.2019
08:57:13
трединг, мультипроцессинг
а через async это никак?

Danil
24.07.2019
08:57:33
Дмитрий
24.07.2019
08:57:38
можно через асинк в теории

Nanodesu
24.07.2019
09:06:15
asyncio.create_task()
async def worker_queue(): while True: print(que.get()) time.sleep(1) loop = asyncio.new_event_loop() loop.create_task(worker_queue()) Если я так делаю, то функция даже не исполняется, а если добавить loop.run_forever() то на этом тред блокируется

А можно как-нибудь сделать запуск но такой чтобы он не блокировал текущий тред?

Google
Дмитрий
24.07.2019
09:08:13
А можно как-нибудь сделать запуск но такой чтобы он не блокировал текущий тред?
как ты себе это представляешь? чтобы так работало, надо или чтоб ивентлуп был в отдельном треде, или чтоб весь код был асинъронным (с asyncio.sleep вместо time.sleep)

Cykooz
24.07.2019
09:09:09
В примере выше я так и сделал
Вот бы ты ещё "таску" сделал асинхронной - тогда бы она не "блокировала" "основной поток". Ну и конечно же "основной поток" тоже должен быть асинхронным. Иначе путь тебе в мульти-трединг или -процессинг

Иван
24.07.2019
09:12:45
Привет! Ребят подскажите плиз , нужно через редис организовать очередь задач, но с одним условием: необходима очередь из пачек задач пример: задачи приходят и ложатся в очередь когда набирается 10 шт - кидаем уведомление и отправляем эти задачи батчем можно ли это организовать на стороне редиса? или необходимо писать логику на питоне что бы проверять сколько задач зашло в очередь???

Tishka17
24.07.2019
09:15:39
о. прикольно. у меня похожая задача на SQS

Cykooz
24.07.2019
09:16:59
Почему бы не складировать свои задачки куда-то отдельно от очереди, и как только их там станет 10 - посылать их в очередь все в виде одного сообщения

Иван
24.07.2019
09:18:00
но там еще такая тема, если проходит больше 3хсек после захода каждой из задачи - тоже отправлять независимо орт размера батча

Pavel
24.07.2019
09:20:18
ну сделай вотчдог, который смотрит в очередь и на таймер

Tishka17
24.07.2019
09:38:16
ну сделай вотчдог, который смотрит в очередь и на таймер
а как быть если у тебя несколько воркеров?

Pavel
24.07.2019
09:40:04
а как быть если у тебя несколько воркеров?
то есть тебе надо не только накопить батч и решить, что "пора", но и решить "кому" это скормить?

Tishka17
24.07.2019
09:40:15
угу

Александр
24.07.2019
09:40:30
Raft прикрути

Pavel
24.07.2019
09:41:31
это, кажется, не из этой оперы немного

Tishka17
24.07.2019
09:41:38
Raft прикрути
вот смотрю на картинку рафта. А оно будет работать когда половина воркеров упадет?

Tishka17
24.07.2019
09:42:06
и да, у меня воркеры в разных ДЦ, между ними связи нет кроме как через очередь и БД

Google
Tishka17
24.07.2019
09:43:11
а. это просто выбор ведущего типа?

Александр
24.07.2019
09:43:24
Да

А ведущий «распределяет» задачи по воркерам

Каким образом - зависит от задачи

и да, у меня воркеры в разных ДЦ, между ними связи нет кроме как через очередь и БД
Реализуй через базу обмен информацией о живучести воркеров, если нет другого варианта для связи

Tishka17
24.07.2019
09:50:12
да мне в целом не нужно синхронизировать воркеров. Просто желательно батчи иметь, а не по одной записи таскать

Cykooz
24.07.2019
09:50:51
но там еще такая тема, если проходит больше 3хсек после захода каждой из задачи - тоже отправлять независимо орт размера батча
Задачки складируешь в базу, а в очередь раз в 3 секунды кидаешь месадж. Воркер ловит месадж и выгребает из базы все задачки, старше 3-ёх секунд и начинает выполнять их. Без распределённых локов конечно не получится, т.к. надо предотвратить возможность параллельной обработки одних и тех же задачек в разных воркерах.

Pavel
24.07.2019
09:52:15
в терминах кролика тебе мог бы помочь самописный shovel, например

Александр
24.07.2019
09:53:09
Раз там SQS, наверняка там что-то у Амазона есть для синхронизации своё

Александр
24.07.2019
09:54:48
а в очередь нет возможности кидать сразу батч?
Ну он же может собираться долго или разными сервисами, из разных источников

Iliya
24.07.2019
09:54:57
jinja сама по себе хорошо работает
Ок, спасибо понял. А где можно глянуть примеры каких-то простых схем, чтобы там квадратики нарисовать подписать их внутри, а то что-то не нахожу. И собирать надо как обычной код? Схемка откроется в новом окне что-то проде Matplotlib или как?

Cykooz
24.07.2019
09:55:22
а в очередь нет возможности кидать сразу батч?
Если очередь надёжная - можно и батч кидать. Правда есть кейс, что пока он дойдёт до воркера, то задачек в базе станет сильно больше.

Иван
24.07.2019
09:55:47
Ну он же может собираться долго или разными сервисами, из разных источников
долго точно нет, раз в 3 сек будет отправляться независимо от наполнености батча

Google
Иван
24.07.2019
09:57:08
Кем отправляться?
всмысле воркер будет загребать батч раз в 3 сек либо же когда в батче будет 10 задач)

Александр
24.07.2019
09:58:02
Иван
24.07.2019
09:58:49
Тебе же сказали, что воркер не один
ну значит лочить нужно =\

Алексей
24.07.2019
09:59:46
Питон учить лучше или ноду?

Александр
24.07.2019
09:59:46
ну значит лочить нужно =\
Тут уже обсудили, что нужно делать

Максим
24.07.2019
10:00:31
Питон учить лучше или ноду?
паскаль же. в чате про питон другого ответа не дадут

Cykooz
24.07.2019
10:01:59
долго точно нет, раз в 3 сек будет отправляться независимо от наполнености батча
Под надёжностью очереди я имел ввиду, что она не просрёт задачу если воркер неожиданно упадёт, и "засунет" эту задачу в другой живой воркер Не знаю как с этим дела в очередях на базе Redis

Андрей
24.07.2019
10:02:08
Forevka ÐΞV
24.07.2019
10:02:08
Dmitry
24.07.2019
10:02:58
asm
asmr

Страница 9689 из 9768