import streamlit as st
import time
class Task:
def __init__(self):
pass
def run(self):
for i in range(100):
print(i)
time.sleep(1)
if st.button('run some long task'):
t = Task()
for i in t.run():
print(i)
if you run the above app with streamlit run main.py
, and immediately click on the button a couple of times multiple instances of that task will start. but, the task is not being freed when you stop or even close the session. I am assuming for every button press a new background worker is being started?, but these background workers are not stopping after pressing stop or session disconnect.
Can you provide a solution on how to stop the background workers taking up resources, even though there is no user connection.