Thread中的方法停止我的UI - Python Django

时间:2017-10-26 08:52:36

标签: python django multithreading scheduler

我试图异步运行一些定期(调度程序)方法,因此不会阻止UI线程。

我目前的代码是:

class Job():

    def run(self):
        thread = threading.Thread(target=self.run_inside_thread, args=[])
        thread.setDaemon(True)
        thread.start() 

    def run_inside_thread(self):

        schedule.every(self.tick).seconds.do(self.call_method)

        while True:
            if self.isRunning:
                schedule.run_pending()

我使用if self.isRunning:,以便我可以停止并启动任务。 问题是这阻止了我的UI(但只在服务器上 - 在我的本地开发机器UI上工作)

我做错了什么?根据我的理解,代码应该在另一个线程(而不是UI一个)上运行异步。

我看到"修复"你放time.sleep(1),但这意味着我不能运行方法sunner然后1秒。例如,如果我做time.sleep(0.1)它不起作用。 (UI线程被阻止)

0 个答案:

没有答案