Hello Dash community,
I’ve got a problem,
I’m trying to start and stop my threads with Buttons in usage.py
It work if my thread is in the main app (usage.py) but I’d like to externalise the threads.
A button:
html.Button(
id='nav_power_btn',
value='navigation',
n_clicks=0
),
A callback:
@app.callback(
Output('nav_power_btn', 'children'),
[Input('nav_power_btn', 'n_clicks')])
def nav_power(n_clicks):
# on initie le producer
ip_address = '0.0.0.0'
port_eth = 13002
thread_producer = Thread(target=Producer, args=(1, ip_address, port_eth))
if n_clicks == 0:
return 'START'
elif n_clicks % 2 != 0:
print(n_clicks)
thread_producer.stop()
return 'START'
elif n_clicks % 2 == 0:
print(n_clicks)
thread_producer.start()
return 'STOP'
A Thread
import datetime
import socket
import sqlite3
import xml.etree.ElementTree as ET
from collections import deque
from threading import Thread
class Producer(Thread):
*get data from UDP device / While=True*
Currently I got exception
Exception in thread Thread-1772:
Traceback (most recent call last):
File "C:\Users\aphilipp\AppData\Local\Programs\Python\Python37-32\lib\threading.py", line 926, in _bootstrap_inner
self.run()
File "C:\Users\aphilipp\AppData\Local\Programs\Python\Python37-32\lib\threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
TypeError: 'module' object is not callable
My question is:
Is it possible to externalise the Threads in independents files ? Must I use some tools like Celery / Redis to do it ?
Thanks for your time