Emilka90, использовать async с тредами бессмысленно, так как поток событий должен выполняться в одном треде. Или придётся следить самому, чтобы весь асинхронный код выполнялся в главном треде, а в отдельных тредах - только синхронный код и никакой больше.
В этой функции всё неправильно. Использовать time.sleep в асинхронном коде нельзя, надо использовать asyncio.sleep. Во время asyncio.sleep происходит переключение в поток событий, а при time.sleep программа просто спит. Треды - выбросить и не использовать! Также можно вместо sqlite3 использовать aiosqlite, но если запросы быстрые, то этот блок запросов будет блокировать event loop недолго и с синхронным кодом. Но в каждой итерации цикла обязательно должен быть asyncio.sleep.
Используйю кнопку "вставить исходный код" для оформления кода. Питоновый код без отступов вообще обсуждать бессмысленно - непонятно, что именно в нём делается.
Если очень захотеть, можно попытаться пробежаться по globals() и дочерним элементам нужных типов (модули, классы итд). Но это какое-то хреновое решение, да и задача странная.
Emilka90, тогда должно работать. Обычно это бы означало, что переменная time не определена (модуль тоже переменная). Ну разве что импорт делается в другом файле, не в текущем...
Кстати, судя по ошибке, в скрипте уже как минимум 8 тыс. строк, что довольно много и указывает на потенциальную пользу рефактироинга и деления на логические части.