Oleg
дико бесило
Oleg
я только из-за этого и обновился на RC
Anonymous
#работа #удаленка Оплата 1000р/ч. https://freelansim.ru/tasks/240149 О технической части проекта: бекенд написан на #Django (Python 3) и управляет всей логикой. Во фронтенде — шаблон на Bootstrap, Vue.js; Как построена работа: новый функционал разрабатывается в отдельных Git ветках(автоматический деплой). Задачи в Trello. Обсуждение в общем чате. Требования: Практический опыт программирования на Python(Django) — от 3х лет Знания основ веб-технологий — HTTP, REST-API; Умение писать расширяемый и документированный код; Знания Git на уровне работы из командной строки; Docker, Web3.py(взаимодействие с Блокчейн нодой).
Anonymous
Как может такая работа оплачиваться почасово?
Oleg
> опыт от трех лет > 1к в час
блокчейн стартапы уже не те )
Oleg
При наследовании оно не ожидало в конструкторе поля из родителя
завезли бы еще в сами датаклассы возможность в наследнике указывать обязательные поля если в родителе есть необязательные
Oleg
а то приходится это через множественное наследование делать
Oleg
Это уже сложно. Там же порядок как они определены
ну почему это сейчас не работает понятно. Но сделать, имхо, можно было. Например, как в attrs поля в конструкторе могут быть keyword-only
Tishka17
В целом и наследование не особо нужно
oleg
Как может такая работа оплачиваться почасово?
Outstaff називается - есть такие конторы что продают специалистов во временное пользование (бизнес консультации или устранение критических ошибок и тп.)
Oleg
В целом и наследование не особо нужно
Ну хз, в некоторых кейсах без наследования грустно
Anonymous
Outstaff називается - есть такие конторы что продают специалистов во временное пользование (бизнес консультации или устранение критических ошибок и тп.)
На своем примере, я могу просидеть час не сдвинувшись с места, а потом за час сделать то, на что планировал потратить день
Oleg
а еще хочется, чтобы dataclass-плагин для mypy воспринимал return type asdist'а как TypedDict
Alexander
Я наследую нормально
Alexander
Alexander
Rustam⁷
😀
Oleg
это не очень хорошая идея, в каждой итерации будет поиск по списку, который O(n)
Oleg
Ну я только что написал, что не надо проверять в каждой итерации. Это медленно будет
Oleg
сделай сразу set и добавляй в него
Oleg
операция set.add идемпотентная
Pavel
сделай сразу set и добавляй в него
а если ему порядок важен? upd. хотя, он же сам в сет переделывает
Pavel
и бессмысленное
Pavel
можно проиграть по памяти и держать вместе с листом сет. проверять вхождение в сет, добавлять. но стоит помнить, что худший кейс x in set в общем то тоже О(n) (хотя средневзвешенный таки О(1))
Stas
понял
Stas
тобишь каждый in это поиск по списку
Pavel
для списка - да
Oleg
можно dict использовать и хранить значения в ключах
Oleg
будет как set, только ordered
𝑨𝒛𝒂𝒎𝒂𝒕
есть кто нибудь с Кавказа ?
Oleg
будет как set, только ordered
но только в python >= 3.6
𝑨𝒛𝒂𝒎𝒂𝒕
а важно?
Мне интересно ))
Pavel
но только в python >= 3.6
емнип это сайдэффект и никто не гарантировал, что так-будет-и-дальше
Oleg
т.е. начиная с 3.7 это часть спеки языка
Stas
ValueError: dictionary update sequence element #0 has length 1; 2 is required
Stas
не совсем понял о чем вы
Stas
:))
Stas
или как это сделать?
Stas
а понял
Stas
что он ordered стал
Oleg
l = [9, 1, 5, 8, 3, 4, 9, 15, 8] {v: None for v in l}.keys() # [9, 1, 5, 8, 3, 4, 15]
Dmitry
Привет. А кто-нибудь знает, как в Celery предотвратить создание огромного числа регулярных заданий, если сдох воркер?
Dmitry
Или может просто не celery для этого юзать?
Oleg
Сожрало?
не понял вопрос
🤔
не понял вопрос
Ну ты не все вывел
🤔
2 элемента потерял
Oleg
Ну ты не все вывел
ты точно понимаешь что делает этот код?
🤔
А
🤔
Я тупой
🤔
Dmitry
использовать несколько воркеров? перезапускать сдохший?
Ну, так-то да. Но поскольку redis, как бэкенд, персистит данные, не очень корректное поведение - если сдох (не запустился) воркер, херачить нон-стопом тысячи задач.
Dmitry
В моём случае это поллинг API
Dmitry
Ну, если бы это было что-то, не персистящее данные, можно было бы его рестартить перед стартом воркера
Andrew
Ну, если бы это было что-то, не персистящее данные, можно было бы его рестартить перед стартом воркера
ничего не понял. В твоём случае задачи в редис складывает некий код. Твой. Почини или первое или второе
Dmitry
Мой код тут не причём
Andrew
Мой код тут не причём
Ага, а таски в редисе из воздуха берутся
Dmitry
Переформулирую вопрос. В Celery есть понятие regular tasks. Есть task, который должен выполняться раз в n секунд. Если дохнет или не запустился почему-то воркер, то celerybeat будет пулять таски до опупения, а когда воркер запустится - они выполняются не раз в 5 секунд, а непрерывным циклом, пока не кончатся
Dmitry
О, expire. Спасибо!
Andrew
Отличный сервис. Генерирует таски которые самостоятельно экспирятся. Побольше бы таких. Может зима стала теплее
Andrew
Именно то, что мне надо!
неработающий селери с неработающими тасками? Так просто можно вырубить его в сервисах
Dmitry
Нет, селери, который не копит ненужные тысячи невыполненых регулярных тасков
Andrew
т.е. воркер таки работает но иногда прилегает?
Dmitry
т.е. воркер таки работает но иногда прилегает?
Я не знаю, я ещё не клал это в прод. И селери первый раз юзаю. Но факт, что если он приляжет, выполнять накопленные таски избыточно
Dmitry
И даже вредно: api может забанить
Andrew
ок
Dmitry
Я понимаю, что убивать не регулярные таски - это глупо. Потому что это может быть выполнение какого-то уникального задания. Но в моём случае это просто синхронизация данных. Каждый её запуск не будет отличаться от предыдущего