Hello tout le monde,
Actuellement j'ai le programme suivant :
1/ Un module déclenche une interruption
2/ L'interruption est détectée via GPIO.wait_for_edge
3/ Le raspberry pi zero récupère les données
4/ Le raspberry pi zero écrit les données dans une bdd SQLite sur sa carte SD
Le problème, c'est que cela prend grosso modo 60ms dont 50ms pour la partie 4 et potentiellement, le module peut balancer une interruption toutes les 20ms et actuellement, j'ai une probabilité de perdre des données.
Dit autrement, sur 1s, je peux avoir entre 50 données ou 0.
En gros mon idée, c'est de créer d'autres process qui ne feraient que de l'écriture en parallèle pour que la priorité reste à la récupération des données.
Mais pour le coup, entre threading & multiprocessing, j'ai un peu du mal à voir lequel utilisé. Sachant que comme c'est une BDD SQLite, si les threads/process pouvaient avoir une fonction lock, cela serait cool.
Question annexe (pour du multicore), est-ce qu'il est possible de dire à python de s'executer sur le core 2 par exemple ?
Merci![]()
Partager