¿Cómo arreglar este error? Configuré un evento enviado por el servidor que envía datos solo si hay datos nuevos en la base de datos a la interfaz. pero cada minuto sigue enviando datos a pesar de que no hay datos nuevos en la base de datos. Este problema no está presente durante el desarrollo, pero cuando se implementa en Heroku, aparece este error.
vistas.py
def event_stream(): initial_data = "" while True: deposit_records = Deposit.objects.filter().values('date').order_by( '-id').annotate(bottles=Sum('number_of_bottles'), credits=Sum('credits_earned'), not_bottle=Sum('not_bottle')) bottle = Deposit.objects.aggregate(Sum('number_of_bottles'))[ 'number_of_bottles__sum'] # deposit_records = Deposit.objects.order_by( # "-id").values("number_of_bottles", "credits_earned", "date") data = json.dumps(list(deposit_records) + list(str(bottle)), cls=DjangoJSONEncoder) # print(data) if not initial_data == data: yield "\ndata: {}\n\n".format(data) initial_data = data time.sleep(1) def stream(request): response = StreamingHttpResponse(event_stream()) response['Content-Type'] = 'text/event-stream' return responseJS
var eventSource = new EventSource("{% url 'stream' %}") eventSource.onopen = function(){ console.log('yay its open'); } eventSource.onmessage = function(e){ if(!e){ eventSource.end() } else{ console.log(e) var final_data = JSON.parse(e.data) } eventSource.onerror = function(e) { console.log(`error ${e}`); }