La requête AJAX expire après 1 minute

Il y a quelque temps, j’ai créé un plugin Discourse qui appelle une méthode de contrôleur via ajax et renvoie ensuite le résultat. Cette requête particulière peut prendre quelques minutes, et cela fonctionnait bien.
Mais maintenant, après un long moment, j’ai essayé le plugin dans la version actuelle de Discourse et je rencontre un problème où la requête est abandonnée après 1 minute.

Le code ressemble donc à ceci :

ajax("/my-plugin/import", {
        type: "POST",
        data: {
          categoryId: this.categoryId,
          otherData: ...
        }
      }).then((result) => { ... });

Et le message d’erreur que je vois après 1 minute est :

Erreur du proxy Discourse Ember CLI

FetchError : la requête vers http://127.0.0.1:3000/my-plugin/import a échoué, raison : 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)

Ce que j’essaie de comprendre, c’est pourquoi ce comportement a pu changer au cours de la dernière année ? Et s’il existe une option pour modifier le réglage du délai d’attente.

Je ne pense pas qu’il y ait eu de changement récent ici. Le backend de Discourse est configuré pour expirer les requêtes après 60 secondes en développement, ou 30 secondes en production

Il semble que cela soit configurable en développement via la variable d’environnement UNICORN_TIMEOUT. Mais la production est codée en dur à 30 secondes.

2 « J'aime »

Peut-être souhaitez-vous planifier des tâches pour traiter l’importation.

3 « J'aime »

Finalement, j’ai tout réécrit pour gérer l’importation dans un travail planifié, ce qui s’est avéré beaucoup mieux.

2 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.