Nhật ký công việc cho nhiệm vụ "Tối ưu hóa thời gian khởi động dự án"
10 авг. 2026 г., 09:33:43
Trên vietnamguru, tôi đã làm thế này:
--- a/server/index.ts
+++ b/server/index.ts
@@ -49,11 +49,12 @@ async function startServer() {
stopGraphql = stop
if (withN8N) {
- // Start n8n as child process (waits for API to be ready)
- await initN8n()
-
- // Run bootstrap (create owner, import credentials if needed)
- await runBootstrap()
+ // Start n8n as child process in background (non-blocking)
+ initN8n()
+ .then(() => runBootstrap())
+ .catch((err) => {
+ console.error('[n8n] Failed to initialize:', err)
+ })
}
Thực ra chỗ này có một điểm trừ - nếu n8n bị lỗi, server sẽ không khởi động lại. Nhưng chúng ta có thể chấp nhận điều này vì ưu tiên khởi động nhanh hơn. Chứ trong khoảng 10-15 giây downtime đó, các công cụ tìm kiếm kịp ghé thăm và sau đó phàn nàn về lỗi 502.