Philipp
Philipp
А вот столько очередей создает celery
Philipp
они не протухают, спустя какое-то время кролик умирает, а вместе с ним и линховая тачка
Alex
эм... бред какой-то у тебя не должно создаваться по очереди на таску.
Alex
а как ты таски вызываешь покажи?
Philipp
эм... бред какой-то у тебя не должно создаваться по очереди на таску.
ну то есть это реально неправильно, что так создается
Сережа
ну да, типа все должно в одну очередь складываться, это же очередь
Philipp
Alex
это не вызов таска.
Alex
ну и кстати пихать mutable типы дефолтными значениями аргументов функций - моветон
Kirill
Может это из-за того что ты "backend" указал? Т.е. в этих "рандомных" очередях на самом деле лежат результаты работы твоих тасков?
Kirill
Попробуй не указывать ничего в настройке backend, вообще удали её
Philipp
это не вызов таска.
res = get_info.delay(data) res.get
Kirill
Ну и вообще ampq в качестве бекенда для результатов - так себе идея. Это ведь очередь, а не база с произвольным доступом.
Philipp
ТАк бекенд убрал, теперь вроде очерди новые не создаются...
Philipp
Но вот еще, что смущает:
Philipp
Philipp
Много подключений
Alex
ну а как ты запускаешь это барахло?
Philipp
celery -A app worker -l info
Alex
Ну и вообще ampq в качестве бекенда для результатов - так себе идея. Это ведь очередь, а не база с произвольным доступом.
скорее всего результаты просто никто не обрабатывал (меня смущает настройка IGNORE_RESULT)
Philipp
Alex
ну вообще подозреваю что в качестве бекенда тебе надо было бы тоже указать в какую очередь засылать результаты
Alex
и обрабатывать соответствующим образом.
Alex
Ну и вообще ampq в качестве бекенда для результатов - так себе идея. Это ведь очередь, а не база с произвольным доступом.
наверное это нормально, если на другом конце сидит обработчик и сохраняет результаты в базу или обрабатывает любым другим образом.
Philipp
наверное это нормально, если на другом конце сидит обработчик и сохраняет результаты в базу или обрабатывает любым другим образом.
Да, кстати, заметил, что celery так нагружало rabbit, что у меня в итоге на компе процессор на 50 % грузился через beam.smp
Philipp
И создавалось дофига процессов
Philipp
Tishka17
Это вроде не дофига
Philipp
не это не довига, но если учесть, что это виртуалка на винде, которая еще много всего делает. Я к тому, что эти процессы создавались. Поэтому у меня виртуалка и умирала. На сервере таких проблем не было, но это первого серьезного выстрела))
Nikolay
Высокая нагрузка на сайт окон и дверей
Alex
просто десяток процессов воркеров это нормально
Tishka17
Вообще, чего бы рэббиту есть памяти больше чем есть в виртуалке
Tishka17
Это да
Alex
+ на том количестве очередей что у него создавалось
Tishka17
Разобрались почему лишние очереди?
Alex
да, потому что backend
Alex
собственно он слал результаты тасков в бекенд, при этом ингорировал результаты
Alex
ну и очередь не указывал для бекенда - в итоге celery создавала очереди на каждый task result
Tishka17
ну вот последнее - понятно
Alex
а так как результаты игнорировались - сообщения зависали во временных очередях
Tishka17
вообще со стороны селери разрешать юзать без указания очрееди - свинство
Oleg
Ребят, так и не смог разобраться( Если у меня есть класс cls внутри которого в главном потоке я изменил какие-то атрибуты, потом я запускаю какие-то таски с помощью asyncio - и в этом классе эти атрибуты не изменены, а те, которые должны быть по умолчанию. Я могу как-то это обойти?
Tishka17
класс или объект?
Oleg
Класс
Tishka17
Зачем ты меняешь что-то в классе, а не в инстансах?
Oleg
Зачем ты меняешь что-то в классе, а не в инстансах?
Потому что инстанс должен был быть один - и я решил вместо синглтона просто юзать сам класс
Сережа
ыыы
Tishka17
жесть какая
Сережа
лучше borg тогда
Tishka17
не надо так
Сережа
всместо синглтона
Tishka17
вместо синглтона надо юзать один инстанс, который не синглтон
Сережа
а чому не юзать несолько интсансов с общим dict'ом
Oleg
Oleg
Logic - это и есть этот класс
Henaro 🎄
Сап, гайс. Где-то затупил или глаз замылился, не могу понять в чём прикол... python 3.6.2 bottle 0.12.16 в обработчике POST делаю: @app.route('/setbl', method=['POST', 'OPTIONS']) def block_number(): data = request.json print(data, type(data)) return {"result": "ok"} в консольке честно выводит: <class 'dict'> {'number': '9879896'} на фронте тоже вижу {result: "ok" однако стоит только в обработчик добавить data = request.json print(data, type(data)) print(data['number']) как тут же получаю: None <class 'NoneType'> TypeError: 'NoneType' object is not subscriptable
Oleg
В Tasks.add_task запускаются таски определённые, которые юзают Logic
Тимофей
Добрый день! Есть ли способ подключиться к SQL-БД и выгружать результаты запроса по частям?
Tishka17
что-то не вижу ни записи в поля класса, ни чтения
Oleg
set_cache и set_database меняют атрибуты
Tishka17
кода не вижу
Oleg
Artyem
Добрый день! Есть ли способ подключиться к SQL-БД и выгружать результаты запроса по частям?
ну смотря что за бд и их функционал, есть всякие сервер сайд курсоры, которые именно будут отдавать запрос по частям. можно простыми offset и limit обойтись
𝕵𝖎𝖒 𝕸𝖔𝖗𝖗𝖎𝖘𝖔𝖓
Как в селениуме запускать хром в хэдлесс режиме (в одну строку)
𝕵𝖎𝖒 𝕸𝖔𝖗𝖗𝖎𝖘𝖔𝖓
?
Tigran
да это руками писал, местами перепутал
ты запускаешь один код, а показываешь нам другой код. не надо так
Tishka17
а читаешь как?
Henaro 🎄
вот так работает и выводит {'number': '64521'} <class 'dict'>
Oleg
а читаешь как?
Создаю объект в main модуле database и cache, потом их передаю в set_cache и set_database