2015-05-02 14 views
12

Làm thế nào tôi có thể kết hợp ứng dụng web Flask và dịch vụ microsisices Nameko?Làm thế nào tôi có thể kết hợp bình và tên?

Hãy để tôi cung cấp cho bạn một số ngữ cảnh. Tôi có ứng dụng web dựa trên bình (http://flask.pocoo.org). Ứng dụng này có thể thực hiện các tác vụ dài (5-10 phút). Tôi muốn có thể viết và đính kèm các mô-đun bổ sung cho ứng dụng này trong khi nó vẫn đang chạy. Nếu tôi ngừng ứng dụng trong khi phát triển, tôi không thể dừng nó trong sản xuất.

Tôi không có bất kỳ trải nghiệm nào với Nameko (https://nameko.readthedocs.org), đây có phải là giải pháp tốt nhất cho vấn đề của tôi không? Và nếu có - tôi có thể trộn ứng dụng Flask và dịch vụ microsko không?

+2

[Celery] (http://celery.readthedocs.org/) là một lựa chọn tốt hơn cho những gì bạn đang cố gắng làm. – nathancahill

+0

Tôi nghĩ Celery là một lựa chọn tốt hơn. Không chỉ bạn có thể vượt qua công việc, nhưng có thêm các tiện ích như trang web giám sát, v.v. – user1157751

+0

Tôi đã có kinh nghiệm với cả cần tây và RQ, và tôi thấy RQ dễ sử dụng hơn và thân thiện hơn, nguồn có thể đọc được và hoạt động tốt . –

Trả lời

8

Người đóng góp cho Nameko đây. Tôi đồng ý với nathancahill rằng cần tây là một lựa chọn tốt cho việc này.

Bạn hoàn toàn có thể sử dụng nameko và Flask cùng nhau. Có một ví dụ ngắn trong một ý tưởng ở đây: https://gist.github.com/mattbennett/4250ce5d56b36a99bc39

Trong cấu hình đó, bạn đang trang bị cùng một nền tảng mà Celery được xây dựng - cụ thể là xử lý các tác vụ dài ngoài chu kỳ yêu cầu. Thành thật mà nói, ví dụ trong gist sẽ được thực hiện tốt hơn độc quyền như một ứng dụng nameko (sử dụng http entrypoint tích hợp), bởi vì nó không sử dụng bất kỳ tính năng giống như khung công tác nâng cao hơn mà Flask cung cấp cho bạn.

Nếu bạn muốn viết các dịch vụ nhỏ, thậm chí là những dịch vụ chủ yếu dựa trên HTTP, nameko cung cấp một số công cụ tốt để làm như vậy. Nếu bạn chỉ muốn thêm xử lý không đồng bộ vào một ứng dụng web hiện có, cần tây sẽ là lựa chọn tiêu chuẩn.

0

Bạn đã nghe nói về Pinball chưa? Đó là Pinterest trình quản lý luồng công việc của riêng mình.

Nó cho phép bạn lên lịch và quản lý việc chia tỷ lệ trên nhiều máy và trong Python.

Họ chào các nguyên tắc thiết kế sau:

  • đơn giản: dựa trên dễ dàng để nắm bắt trừu tượng
  • Extensible: dựa trên thành phần tiếp cận
  • Transparent: trạng thái lưu trữ trong một định dạng có thể đọc được
  • đáng tin cậy: thành phần tính toán không quốc tịch
  • Có thể mở rộng: tỷ lệ theo chiều ngang
  • Thân thiện với quản trị viên: có thể nâng cấp ed mà không hủy công việc
  • Tính năng phong phú: tự động thử lại, mỗi việc làm email, alternations runtime, ưu tiên, chính sách tràn ngập vv
Các vấn đề liên quan