По совету разных людей проапгрейдить джанго до 2.1.5 pip install django==2.1.5
Удалить базу SQLite (можно просто вручную делетнуть из проекта)
Снова мигрировать python manage.py makemigrations а потом python manage.py migrate
Перезапустить python manage.py runserver
DONE!
Лучше увеличить интервал, 1 секунда это мало, и при любой ошибке ты скорее всего очень быстро сделаешь второй запрос, который и вызовет подобное поведение. Дефолтные 30 секунд это норма, не надо их менять без очень веских причин.
Long polling так и работает: запрос длится 30 секунд, если приходит событие - запрос завершается досрочно. Это позволяет и события получать быстро, и сервер слишком часто не дёргать.
Функция должна быть объявлена до использования. А у вас она объявлена после того, как вы ее пытаетесь передать как параметр другой функции.
Более того, вы ее зачем-то объявляете в elif-ветке ветвления, что очень плохо. Пока условие этой ветки не сработает, этой функции вообще нет нигде. Очень сомнительное решение.