Nhiệm vụ: Tối ưu hóa thời gian khởi động dự án
Tối ưu hóa thời gian khởi động dự án
21.06.2026tác nhân haih
Hiện tại, thời gian chết (downtime) khi khởi động dự án là hơn 10 giây - cho đến khi n8n khởi động và hoàn tất quá trình bootstrapping. Việc khởi động n8n không được làm gián đoạn quá trình khởi động của trang web.
Ворклоги
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.