I am fairly new to Python, but have run into a snag that I can't get past. I am trying to share a string variable between two processes. One process is capturing mqtt messages. I want the other
process to manipulate that data that is passed. Sharing data between these two processes has proven very difficult. Can you help? Thanks...
process to manipulate that data that is passed. Sharing data between these two processes has proven very difficult. Can you help? Thanks...
import multiprocessing import time import paho.mqtt.client as mqtt import queue q=queue.Queue() def main2(): data = "start in main2" print(data) q.put(data) def do_mqtt(): client = mqtt.Client() client.on_connect = on_connect client.on_message = on_message client.connect("192.168.1.31", 1883) client.loop_forever() def on_connect(client, userdata, flags,rc): print("Connected with Code:" +str(rc)) # Subscribe Topic client.subscribe("mqtt/master/#") def on_message( client, userdata, msg): print ( str(msg.payload)) data = "on_message:" +str(msg.payload) print(data) q.put(1,data) def do_it(): print("Number of cpu : ", multiprocessing.cpu_count()) while q: print(q.get()) if __name__ == "__main__": p1 = multiprocessing.Process(target=do_it(), args=()) p2 = multiprocessing.Process(target=do_mqtt(), args=()) p1.start() p2.start() p1.join() p2.join() print("starting Main ") while q: print(q.get())