Я хочу сделать BTLE-сканирование в окрестностях, для этого у меня есть следующий код
btlescan.py
import btlescan_handler
proc = subprocess.Popen(['sudo', 'stdbuf', '-oL', 'hcitool', 'lescan'], stdout=subprocess.PIPE, shell=False)
for line in iter(proc.stdout.readline,''):
now = arrow.now()
output = line.rstrip()
try:
reload(btlescan_handler)
btlescan_handler.process(now, output, storage)
except:
pass
и btlescan_handler.py
def process(now, line, storage):
try:
mac = line[:17]
output = str(int(now.float_timestamp * 1000)) + ' -- ' + now.datetime.strftime('%Y-%m-%d -- %H:%M:%S.%f') + ' -- ' + line
print output, mac
except:
pass
Поскольку BTLE-устройства по своей природе очень болтливы, это приведет к тому, что функцию reload
будут вызывать несколько раз в секунду.
Имеется reload
, так что я могу изменять функцию process
в btlescan_handler
в режиме реального времени, вместо того, чтобы постоянно перезапускать скрипт для каждого незначительного изменения.
Я знаю и использую inotify
, у меня есть сценарий, который обычно обрабатывает все наблюдения / отмены / перезагрузки сценариев Python при их изменении, но для быстрого и грязного тестирования функциональности process
Я просто хочу позвонить reload
.
Суть вопроса в том, каковы недостатки этого, помимо увеличения загрузки процессора? Может ли это привести к тому, что сценарий, запущенный с SDHC-карты (Raspberry Pi), увеличит нагрузку на карту, или это просто считывание из кэша в памяти после того, как текстовый редактор сохранил изменения файла?