Встречается на собеседованиях • сегодня
Расскажи про интересную ошибку на предыдущей работе
Однажды столкнулся с кейсом, когда в продакшене перестали работать Celery-таски. Оказалось, проблема была в сериализации datetime объектов при использовании pickle.
В коде был декоратор, который логировал время выполнения задач:
python
import pickle
from datetime import datetime
def log_time(func):
def wrapper(*args, **kwargs):
start = datetime.now()
result = func(*args, **kwargs)
print(f"Execution time: {datetime.now() - start}")
return result
return wrapper
@log_time
def process_data(data):
# some processing
return data
При сериализации в Celery:
pickle.dumps(process_data) # Ошибка!
text
Проблема: `datetime.now()` внутри декоратора пытался сериализоваться, но pickle не может корректно обработать динамически созданные объекты datetime.
Фикс: заменили `datetime.now()` на передачу времени как аргумента или использовали `json` вместо `pickle` для сериализации.
Вывод: всегда проверяйте сериализуемость всего, что попадает в Celery!
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы