PYCON UK 2025: Остановись и загорись: Принудительная остановка Python, Джейк Ховард
Автор: PYCON UK
Загружено: 2025-09-27
Просмотров: 540
Написать код, который работает, легко. Написать код, который останавливается (корректно) — сложно. Написать код, который корректно останавливает чужой код? Ещё сложнее.
Как разработчики, мы должны писать код, который должен выполняться. В большинстве случаев мы хотим, чтобы этот код выполнялся как можно дольше — либо до завершения, либо пока что-то внешнее не перезапустит нас. Но в некоторых случаях мы хотим, чтобы он выполнялся до тех пор, пока другая часть нашей программы не скажет нам этого не делать.
Определяя фоновые повторно используемые задачи, вы не хотите, чтобы они выполнялись вечно. Если задача по какой-либо причине занимает слишком много времени, вы хотите, чтобы она была остановлена. Для сокетов и других нативных API существуют нативные тайм-ауты. Но как насчёт целых блоков кода? Или операций, интенсивно использующих процессор? Как вы (или библиотека фоновых рабочих процессов) можете остановить их корректно и надёжно из Python, не имея никаких предварительных знаний о том, как написана или выполняется фоновая задача?
Что ж, есть довольно много способов сделать это. Некоторые элегантны, некоторые не очень...
Джейк Ховард:
Старший системный инженер в Torchbox
Команда безопасности в Django и участник DSF
Команда ядра и безопасности в Wagtail
Активный пользователь собственного хостинга
Постоянный блогер
Социальные сети:
Mastodon: @jake@theorangeone.net
Bluesky: @theorangeone.net
Доступные форматы для скачивания:
Скачать видео mp4
-
Информация по загрузке: