العربية
فتح في Telegram
УУчим Питон (Чат)

Учим Питон (Чат)

@learnpythonforfun_chat · مجموعة · التعليم · في الفهرس منذ 2026-05-28
615أعضاء
55 988رسائل في الفهرس
D
А
السلسلة كاملة · 1 رد →
И
رابط
انقر للعرض
Можете меня поздравить, я наконец начал пользоваться нейронками. В обнимку с клодом 4.7 смог написать код нового воркера, который параллельно процессит задачи из очереди на базе postgresql. Признаюсь честно - сам бы я такое не написал. Точнее думал бы, что написал, но оно бы не работало. Клод нашёл просто немеряное количество багов с взятием и освобождением ресурсов на всех итерациях. Сжёг на это приличное количество токенов, но оно таки работает. Можете посмотреть пример если у кого-то есть похожая задача: https://github.com/IgorZyktin/omoide/tree/main/omoide/workers/parallel Попутно мне пришлось устроить манкипатч в asyncpg-lostream. Временно руками исправил код прямо внутри установленной библиотеки т.к. там есть баг в одном месте. В итоге я сделал форк. Думаю надо будет исправить в нём найденный баг, собрать и залить на pypi. Автор оригинального проекта написал его 4 года назад и уже год в гите не появлялся, не думаю, что есть смысл ему писать с предложением исправления
  1. D
    а можешь в общих словах сказать, как оно примерно работает?
  2. S
    А чего не в каком-нибудь s3 хранишь картинки и видосики? Мне кажется постгря под это немного костыльное/ленивое решение
    1. И
      руки не доходят. давно смотрел в сторону minio, но всё времени никак нет сесть его настроить. это ж виртуалку надо выделить, диск в неё просунуть, я пока с проксмоксом сильно на вы. так что по старинке храню файлы на диске, а лью сквозь постгрес. зато удобно работать можно их смотреть, редактировать и всё такое
السلسلة كاملة · 4 ردود →
И
Воркер был мне нужен для процессинга операций от пользователя на файловой системе. Это загрузка новой картинки, удаление старой, копирование из одного места в другое. Все эти операции могут исполняться параллельно, но только с одной записью за раз. В pg есть таблица со списком команд на исполнение. Флоу работы такой: 1. Выгрести из таблицы 10 команд через select for update skip locked. 2. Посмотреть id записей для которых эти команды написаны. Попытаться взять лок в pg на эти id через pg_locks. 3. Если удалось взять блокировку, сделать 10 корутин и запустить их внутри task group для параллельного исполнения. 4. Внутри есть process pull executor, в который можно засунуть CPU-bound задачи. 5. По завершению мы отпускаем локи на записи. 6. Если несколько команд работало с одним и тем же postgres large object, он остаётся жить до тех пор, пока не завершится последняя команда которой он нужен. В итоге пользователь приходит на сайт, загружает несколько картинок. Они сохраняются в pg large object. Для каждой делается задача на сохранение на диск и вот этот воркер или несколько таких воркеров их процессят. В воркере ограничение на 5 процессов, так что 5 штук жмутся параллельно для каждого инстанса воркера (пока один, но скоро будут два).
И
Для этого пришлось написать класс который берёт блокировки в постгресе, класс который работает с large object и кучу всякой машинерии. Ну и сами операции с данными конечно
И
Клод ещё сильно помог с кодом частичного выкачивания файла от пользователя без сохранения его целиком в память. Но я это пока ещё не пробовал, надо загрузить видос с гигабайт размером для проверки
И
Ещё qwen3 мне сильно помог. У меня была проблема с тем что я задал слишком мелкий раздел под систему при установке на машину и там постоянно кончалось место. Он мне сказал, что у меня там оказывается LVM и можно изменить размер одной, ну двумя, командами. А я уже планировал операционку переустанавливать...
И
к тому же там надо будет потом дружить nginx с S3, в этом я понимаю ещё меньше
И
пока что я могу позволить себе делать бэкап просто копированием папки. не очень быстро правда, но просто. с S3 такой фокус не прокатит, там уже всё серьёзно. не в курсе даже можно ли с s3 снять холодный бэкап и пололожить его в файл
  1. S
    Пожжи, а если постгря не является хранилищем, зачем там лардж обжекты?
السلسلة كاملة · 1 رد →
И
я из приложения сохраняю файл в pglo, а потом из large object на диск. Сама апишка доступа к файловой системе не имеет
И
мысль была в том, что когда-нибудь там всё-таки появится s3 и можно будет кидать в него а не в pglo
А
Можешь сказать иишке подключиться к серваку по ssh и все там настроить для s3
И
не, ну это неспортивно, я стесняюсь так делать
S
Да и скорее всего херня получится, если целиком ии делигировать
И
ну клод реально очень умён. баги находит только в путь, архитектуру тоже оценивает. думаю конфиг для minio сможет
السلسلة كاملة · 1 رد →
  1. Т
    отличная вещь, только стоит помнить, что нужно тянуть не ласт версию, а ту где еще была админка
السلسلة كاملة · 1 رد →

خلاصة عامة مفتوحة من فهرس البحث ChatCrawler — «Google لـ Telegram العام»؛ تُحدَّث كلما زحفنا إلى المجتمع. الأوقات بتوقيت UTC.

محتوى عام فقط، وAPI Telegram الرسمي. عن المشروع · الأسئلة الشائعة · حدود الفهرس · إزالة صفحة · الدليل · بحث · كيف نحسب