Actualización de la caché del navegador en el matraz

Dec 13 2020

Tengo un pequeño servidor de matraces que estoy ejecutando principalmente para experimentar y herramientas que estoy desarrollando para uso propio (en mi red doméstica). Se ejecuta en modo de desarrollo en una máquina Raspberry Pi. Está configurado para iniciarse en el inicio a través de rc.local:

sudo -H -u pi /home/pi/Server/start.sh &

y el start.sharchivo lee

#!/bin/bash

cd /home/pi/Server
source /home/pi/Server/venv/bin/activate
export FLASK_APP=/home/pi/Server/app.py
export FLASK_ENV=development
export FLASK_RUN_HOST=192.168.1.104
export FLASK_RUN_PORT=5001

flask run

En las primeras parejas de días todo iba bien, pero ahora aparece el siguiente error:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/flask/app.py", line 2309, in __call__
    return self.wsgi_app(environ, start_response)
  File "/usr/lib/python3/dist-packages/flask/app.py", line 2295, in wsgi_app
    response = self.handle_exception(e)
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1741, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/lib/python3/dist-packages/flask/_compat.py", line 35, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/flask/app.py", line 2291, in wsgi_app
    ctx.push()
  File "/usr/lib/python3/dist-packages/flask/ctx.py", line 377, in push
    self.app, self.request
  File "/usr/lib/python3/dist-packages/flask/sessions.py", line 343, in open_session
    data = s.loads(val, max_age=max_age)
  File "/usr/lib/python3/dist-packages/itsdangerous.py", line 643, in loads
    .unsign(s, max_age, return_timestamp=True)
  File "/usr/lib/python3/dist-packages/itsdangerous.py", line 466, in unsign
    return value, self.timestamp_to_datetime(timestamp)
  File "/usr/lib/python3/dist-packages/itsdangerous.py", line 404, in timestamp_to_datetime
    return datetime.utcfromtimestamp(ts + EPOCH)
OverflowError: timestamp out of range for platform time_t

Por lo que veo aquí, este es un problema de caché del navegador. ¿Cómo puedo decirle al matraz que haga frente a esto?

Respuestas

1 KKS Dec 13 2020 at 13:49

¿Parece que estás usando sesiones / cookies? Intente investigar eso, tal vez la fecha no sea correcta o no sea válida. Intente borrarlo session.clear()o use una fecha de vencimiento más corta. También tuve problemas después de actualizar de python 2 a 3 que estropearon las cookies, si lo ha hecho, debe borrar su caché para que se puedan configurar las cookies de fecha / hora de python3.

Abdur-RahmaanJanhangeer Dec 13 2020 at 13:44

Esto parece ser un error cuando el tiempo devuelto es 0 de este problema de Adafruit CircuitPython NTP . Un enfoque directo sería parchear algunas dependencias de matraces con un PR.

Sin embargo, esto parece ser más un error con la antigüedad de su caché. Intenta reducirlo a poco tiempo

@app.after_request
def after_request(response):
    response.headers["Cache-Control"] = "max-age=300" # in second
    return response