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(взаимодействие с Блокчейн нодой).
Mike
Anonymous
Как может такая работа оплачиваться почасово?
Oleg
Oleg
а то приходится это через множественное наследование делать
Tishka17
Tishka17
Tishka17
В целом и наследование не особо нужно
Anonymous
Oleg
а еще хочется, чтобы dataclass-плагин для mypy воспринимал return type asdist'а как TypedDict
Alexander
Я наследую нормально
Alexander
Alexander
Rustam⁷
😀
Oleg
это не очень хорошая идея, в каждой итерации будет поиск по списку, который O(n)
Oleg
Ну я только что написал, что не надо проверять в каждой итерации. Это медленно будет
Oleg
сделай сразу set и добавляй в него
Oleg
операция set.add идемпотентная
oleg
Pavel
и бессмысленное
Pavel
можно проиграть по памяти и держать вместе с листом сет. проверять вхождение в сет, добавлять. но стоит помнить, что худший кейс x in set в общем то тоже О(n) (хотя средневзвешенный таки О(1))
Stas
понял
Stas
тобишь каждый in это поиск по списку
Pavel
для списка - да
Oleg
можно dict использовать и хранить значения в ключах
Oleg
будет как set, только ordered
𝑨𝒛𝒂𝒎𝒂𝒕
есть кто нибудь с Кавказа ?
Mike
Oleg
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 для этого юзать?
🤔
l = [9, 1, 5, 8, 3, 4, 9, 15, 8]
{v: None for v in l}.keys()
# [9, 1, 5, 8, 3, 4, 15]
Сожрало?
Andrew
Oleg
🤔
2 элемента потерял
Andrew
🤔
А
🤔
Я тупой
🤔
Dmitry
В моём случае это поллинг API
Andrew
Dmitry
Ну, если бы это было что-то, не персистящее данные, можно было бы его рестартить перед стартом воркера
Dmitry
Dmitry
Мой код тут не причём
Dmitry
Переформулирую вопрос. В Celery есть понятие regular tasks. Есть task, который должен выполняться раз в n секунд. Если дохнет или не запустился почему-то воркер, то celerybeat будет пулять таски до опупения, а когда воркер запустится - они выполняются не раз в 5 секунд, а непрерывным циклом, пока не кончатся
Bogdan (SirEdvin)
Dmitry
О, expire. Спасибо!
Andrew
Отличный сервис. Генерирует таски которые самостоятельно экспирятся. Побольше бы таких. Может зима стала теплее
Dmitry
Dmitry
Нет, селери, который не копит ненужные тысячи невыполненых регулярных тасков
Andrew
т.е. воркер таки работает но иногда прилегает?
Dmitry
И даже вредно: api может забанить
Andrew
ок
Dmitry
Я понимаю, что убивать не регулярные таски - это глупо. Потому что это может быть выполнение какого-то уникального задания. Но в моём случае это просто синхронизация данных. Каждый её запуск не будет отличаться от предыдущего
Andrew