Spaces:
Running
Running
toykity commited on
Commit ·
4e6481e
1
Parent(s): 97330a5
fix: set global undici timeout via NODE_OPTIONS preload for HF Spaces network
Browse files- var/docker/start.sh +20 -0
var/docker/start.sh
CHANGED
|
@@ -104,6 +104,26 @@ if (code.includes(oldCatch)) {
|
|
| 104 |
"
|
| 105 |
fi
|
| 106 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 107 |
echo "=== Patching complete, starting app ==="
|
| 108 |
|
| 109 |
# Delegate to original entrypoint + CMD (nginx && pnpm run pm2)
|
|
|
|
| 104 |
"
|
| 105 |
fi
|
| 106 |
|
| 107 |
+
# Write a global Node.js preload script to extend undici fetch timeout
|
| 108 |
+
# HF Spaces has intermittent connectivity to external APIs (e.g. Discord)
|
| 109 |
+
# Default undici connect timeout is 10s; we extend to 30s
|
| 110 |
+
mkdir -p /app/patches
|
| 111 |
+
cat > /app/patches/extend-timeout.js << 'PRELOAD'
|
| 112 |
+
try {
|
| 113 |
+
const { Agent, setGlobalDispatcher } = require('undici');
|
| 114 |
+
setGlobalDispatcher(new Agent({
|
| 115 |
+
connect: { timeout: 30_000 },
|
| 116 |
+
headersTimeout: 60_000,
|
| 117 |
+
bodyTimeout: 60_000,
|
| 118 |
+
}));
|
| 119 |
+
console.log('[preload] undici global dispatcher: connect timeout=30s, headers/body timeout=60s');
|
| 120 |
+
} catch (e) {
|
| 121 |
+
console.log('[preload] undici not available, skipping:', e.message);
|
| 122 |
+
}
|
| 123 |
+
PRELOAD
|
| 124 |
+
|
| 125 |
+
echo "NODE_OPTIONS=--require /app/patches/extend-timeout.js" >> /app/.env
|
| 126 |
+
|
| 127 |
echo "=== Patching complete, starting app ==="
|
| 128 |
|
| 129 |
# Delegate to original entrypoint + CMD (nginx && pnpm run pm2)
|