Serviço local "restful"

1

Eu tenho um termostato que pesquisa uma interface serial para a temperatura. Essa interface não pode ser pesquisada com mais freqüência do que trinta segundos por vez. Existem vários scripts python diferentes que precisam de acesso à temperatura que são independentes uns dos outros (por exemplo, pirâmide, tarefas de aipo). Nenhum desses scripts é inteligente o suficiente para evitar sobrecarregar o sensor. Assim, as opções de implementação são as seguintes:

  1. Tenha um serviço de descanso na web local que possa ser consultado por qualquer script do sistema e forneça a melhor temperatura necessária, mas não inspecione o sensor real com muita freqüência nos bastidores (isso me parece excessivo, mas com recursos ideais) )

  2. Armazene a temperatura em um banco de dados de memória e faça com que um script atualize a temperatura armazenada a cada trinta segundos (também é uma opção de peso pesado para obter apenas um inteiro)

  3. Escreva um script que lide com toda a lógica e saia (requer um arquivo externo para armazenar quando a última pesquisa de sensores ocorreu. Não muito melhor do que # 2 e pode desgastar um cartão SD rpi com gravações desnecessárias )

  4. Existe algum recurso Linux embutido e leve que seja uma alternativa ao # 1 (por exemplo, dmesg w / cron)?

por mh00h 17.01.2016 / 23:04

1 resposta

1

Você sempre pode criar um arquivo com alguns valores para compartilhar em / var / run; A estratégia é usada por vários serviços / daemons. Você pode querer criar um subdiretório em / var / run no momento da inicialização, talvez / var / run / temperature se precisar chown para um usuário não-root.

A alternativa para armazená-lo na memória seria usar redis , mas é um exagero.

Há também a alternativa de desenvolver um programa em C usando memória compartilhada, mas a necessidade parece ser muito simples para isso.

    
por 17.01.2016 / 23:16

Tags