моя проблема заключается в следующем:
Мои питоны script получают данные через sys.stdin, но ему нужно дождаться появления новых данных на sys.stdin.
Как описано в manpage из python, я использую следующий код, но он полностью перегружает мой процессор.
#!/usr/bin/python -u
import sys
while 1:
for line in sys.stdin.readlines():
do something useful
Есть ли какой-либо хороший способ решить проблему с высоким значением процессора?
Изменить:
Все ваши решения не работают. Я даю вам точно мою проблему.
Вы можете настроить демон apache2, который он отправляет каждому лондону в программу, а не записывать в файл журнала.
Это выглядит примерно так:
CustomLog "|/usr/bin/python -u /usr/local/bin/client.py" combined
Apache2 ожидает от моего script, что он работает всегда, ждет данных на sys.stdin и анализирует его, тогда есть данные.
Если я использую только цикл for, то script выйдет, потому что в точке нет данных в sys.stdin, а apache2 скажет, что ваш script неожиданно вышел.
Если я использую цикл while, мой script будет использовать 100% -ное использование процессора.