Domyślnie TornadoScheduler uruchamia zaplanowane zadania w puli wątków. Twoje konkretne zadanie używa jednak IOLoop i oczekuje, że zostanie uruchomione w tym samym wątku. Aby to naprawić, możesz użyć metody add_callback() IOLoop tornada, aby jak najszybciej zaplanować zadanie do uruchomienia w wątku IOLoop.
Tak:
def your_scheduled_task():
IOLoop.instance().add_callback(your_real_task_function)
lub nawet lepiej:
scheduler.add_job(IOLoop.instance().add_callback, 'interval', minutes=1, args=[GetWeather])