Vor einiger Zeit habe ich ein Discourse-Plugin erstellt, das eine Controller-Methode über ajax aufruft und dann das Ergebnis zurückgibt. Diese spezielle Anfrage kann einige Minuten dauern, und das funktionierte bisher einwandfrei.
Aber jetzt, nach langer Zeit, habe ich das Plugin in der aktuellen Discourse-Version ausprobiert und stoße auf ein Problem, bei dem die Anfrage nach 1 Minute abgebrochen wird.
Und die Fehlermeldung, die ich nach 1 Minute sehe, lautet:
Discourse Ember CLI Proxy Error
FetchError: request to http://127.0.0.1:3000/my-plugin/import failed, reason: socket hang up
at ClientRequest. (file:///src/app/assets/javascripts/node_modules/node-fetch/src/index.js:108:11)
at ClientRequest.emit (node:events:526:35)
at Socket.socketOnEnd (node:_http_client:525:9)
at Socket.emit (node:events:526:35)
at endReadableNT (node:internal/streams/readable:1359:12)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
Ich versuche zu verstehen, warum sich dieses Verhalten im letzten Jahr geändert haben könnte? Und ob es eine Möglichkeit gibt, die Timeout-Einstellung zu ändern.
Ich glaube nicht, dass es hier kürzlich eine Änderung gab. Discoures Backend ist so konfiguriert, dass Anfragen nach 60 Sekunden in der Entwicklung oder 30 Sekunden in der Produktion abgebrochen werden.
Es sieht so aus, als ob dies in der Entwicklung über die Umgebungsvariable UNICORN_TIMEOUT konfiguriert werden kann. Die Produktion ist jedoch fest auf 30 Sekunden eingestellt.