2013-06-12 22 views
7

Tôi đang cố gắng đưa ra quy trình làm việc tối ưu để cập nhật ứng dụng web của mình chạy trên khung chơi.Luồng công việc tối ưu để cập nhật ứng dụng playframework trong sản xuất

Tôi sử dụng tập lệnh start để khởi chạy nhưng thực tiễn tốt nhất để cập nhật mã để mã này liền mạch nhất có thể cho người dùng là gì?

Trong một ứng dụng Apache + PHP thường là đủ để thả các tệp * .php mới trong thư mục và trong nhiều trường hợp, thay đổi này thậm chí không đáng chú ý cho người dùng.

Bạn có thể chia sẻ quy trình làm việc của mình để thực hiện điều đó với khung chơi không?

+3

Bạn đã đọc [Apache làm proxy phía trước để cho phép nâng cấp trong suốt ứng dụng của bạn] (http://www.playframework.com/documentation/2.1.0/HTTPServer) - phần trong tài liệu Play hay không những gì bạn đang tìm kiếm? – Aerus

+0

Tất nhiên đây là một loại giải pháp nhưng tôi không sử dụng Apache làm proxy tại thời điểm này. Nếu đây là tùy chọn duy nhất và không thể được thực hiện chỉ sử dụng máy chủ tích hợp chơi, tôi sẽ sử dụng Apache. – twowo

+0

Nếu không có máy chủ HTTP front-end, bạn sẽ bị giới hạn nhiều: 'ctrl' +' d' và chạy lại 'play start', theo như tôi biết. Để làm cho nó thực sự liền mạch, bạn sẽ cần Apache, Nginx, ... Tuy nhiên, nếu ứng dụng của bạn mất nhiều thời gian để biên dịch, bạn có thể chạy ứng dụng Play cơ bản hiển thị trang 'đang xây dựng' trong khi ứng dụng chính khác của bạn đang biên dịch. – Aerus

Trả lời

0

Khung chơi rất khác với việc sử dụng một cái gì đó như php trên apache. Php được Apache giải thích khi một trang được yêu cầu bởi người dùng. Vì vậy, tất cả những gì bạn cần làm là thay đổi tệp để cập nhật trang web. Với java tuy nhiên (trừ khi bạn đang sử dụng các tập tin .jsp và thậm chí đôi khi sau đó) mã được biên dịch bytwise và máy chủ web cần phải tải nó và thư viện của nó lúc khởi động. Điều này có nghĩa là chỉ thay thế các tệp mới được biên dịch sẽ không hoạt động. Bạn cần khởi động lại vùng chứa web hoặc tải xuống ứng dụng để tải lại các thay đổi. Điều này luôn có thể nhận thấy đối với bất kỳ người dùng nào cố gắng truy cập vào trang web cùng lúc khi quá trình tải lại đang được hoàn tất.

Bạn có thể có máy chủ web (không phải là Apache) trỏ đến cài đặt phát hiện tại của bạn dưới dạng proxy và hiển thị phiên bản mới song song và sau đó chuyển máy chủ web proxy của bạn sang phiên bản mới và tắt phiên bản cũ. Đây có lẽ là cách dễ nhất để làm điều này và có thể được viết kịch bản.

Một cách khác là chỉ cần có ứng dụng web chuyển hướng người dùng đến ứng dụng và thực hiện thay đổi song song tương tự như thay đổi ở trên.

Cả hai tùy chọn này đều yêu cầu thiết lập và mã hóa để làm cho chúng hoạt động liền mạch. Tuy nhiên công việc có lẽ đáng giá như khi bạn đã thiết lập các bản giới thiệu để sản xuất trở nên rất dễ dàng.

Các vấn đề liên quan