Kto Takoi, это в твоих сообщениях нет никакой так называемой "смысловой нагрузки". Я объяснил, что надо сделать. Ты же явно неспособен даже с таким понятным для любого программиста объяснением ничего сделать. Но почему-то я у тебя виноват.
Kto Takoi, на этом сайте никто не берёт обязательств обязательно за тебя всё сделать. Тут помогают решать проблемы, а не водят за ручку, как в детском саду. Вопросы в духе "я ничего не понимаю, но на какую мне кнопку нажать?" тут вообще нередко просто удаляют.
Я описал что надо сделать: по трейсу найти, где возникает ошибка, исправить код, выяснив, какие изменения произошли в используемой библиотеке. Самому мне разбираться с этим сейчас не очень хочется, тем более с таким отношением.
Kto Takoi, ну если одна библиотека неправильно использует другую библиотеку (и ещё нет обновления с исправлением под новые реалии)), то можно или библиотеку самостоятельно поправить, или установить такие версии библиотек, с которыми не было проблем. И то, и другое требует ненулевого понимания происходяшего, нет мистической кнопки, которая просто всё исправляет.
Kto Takoi, и как по-твоему тебе помогут, если ты этот код даже не показываешь?
Для начала, ошибка сопровождается полным трейсом. Там написаны номера строк, в которых происходили вызовы функций, в том числе и самая последняя строка, в которой произошла ошибка. Вот надо понять, что в этом куске кода делается, что имелось в виду и как это надо переделать с учётом вышеупомянутых изменений в какой-то там библиотеке.
Kto Takoi, если тебе надо поправить код на языке, которого ты не знаешь и не планируешь изучать, то тебе надо на фриланс, заплатить денег тому, кто разберётся. Тут помогают решить проблемы тем, кто хоть какие-то собственные усилия прилагает к тому, чтобы разбраться.
А хоть один диск имеет label? Как следует из udev rules /lib/udev/rules.d/60-persistent-storage.rules, создаваться by-label должен при наличии дисков с ним.
Строго говоря, не факт, что автор будет использовать именно time.sleep, а не что-то такое, что не будет реагировать на сигналы, да и управлять процессом через посылку сигналов внешним костылём это бееее, а не решение.
dimon3728, я прочитал вопрос и прекрасно его понял. Поясню на пальцах.
Допустим, законом установлен срок 6 месяцев. Допустим, некоторое действие совершено 1 июля 2019 года. После 1 января 2020 года депутаты приняли закон, что данные должны храниться 10 лет. Закон вступает в силу 1 июля 2020 года.
Так вот, на момент 1 января 2020 года оператор уже мог удалить любые данные про 1 июля 2019 года. Это его законное право, и привлечь оператора к ответственности за то, что он уже удалил эти данные, просто невозможно. Более того, к 1 июля 2020 года он уже можеть легально удалить любые данные до 1 января 2020 года. Поэтому, начиная с 1 июля, последующие 10 лет весь трафик у оператора будет начинаться с 1 января 2020 года. Трафика от 1 июля 2019 года у него не будет.
В реальности до начала действия закона оператор всё так же имеет право хранить данные 6 месяцев. У него банально не может появиться из ниоткуда дополнительная мощность
dimon3728, в этой части закон обратной силы в принципе иметь не может, так как провайдеры не могли заранее хранить трафик за эти 10 лет. Даже если депутаты сойдут с ума и примут такой закон, это на суде будет рассмотрено как обстоятельство непреодолимой силы.
Ярослав, без sleep как раз никаких проблем. Делаем запрос с таймаутом в 3 минуты, сервер либо за 3 минуты пришлёт данные, либо случится таймаут, но в процессе ожидания ресурсы системы тратиться не будут. Сервер, соответственно, делает long poll ответ.
Но, как тут уже посоветовали, это прекрасный повод попробовать вебсокеты. Тем более что для python есть библиотеки и для чистых вебсокетов, и для socket.io.
Ну как ты себе представляешь, чтобы и страница загружалась, и одновременно действия делались? Разумеется, это должны быть раздельные процессы, например, один на сервере запущен и делает пинг, другой раз в секунду запрашивает с сервера актуальные данные для вывода из браузера пользователя.