2014-11-06 15 views
9

Làm thế nào để quyết định giữa việc tạo một số WebJobs với 1 chức năng và đóng gói nhiều chức năng vào một hoặc chỉ một vài WebJob? Cảm ơnAzure Webjobs: Một công việc có nhiều chức năng, hoặc một vài công việc với 1 chức năng mỗi?

+1

Tôi nghĩ rằng nó chủ yếu phụ thuộc vào trường hợp sử dụng của bạn. Câu hỏi chính là nếu bạn muốn kích hoạt các chức năng độc lập với nhau, mỗi chức năng sẽ sử dụng lịch biểu của riêng nó. Bạn có một kịch bản cụ thể? –

+0

Giả sử tôi có 2 chức năng. Mỗi đọc từ một thùng chứa blob độc đáo và ghi vào một hàng đợi duy nhất. Họ hoàn toàn độc lập với nhau. Tôi có nên đặt chúng trong cùng một dự án WebJob bằng JobHost không? Hoặc các dự án riêng biệt? – Nestor

+1

Nếu bạn phát triển chúng độc lập với nhau (với khả năng các nhóm khác nhau có thể làm việc với một trong số chúng), tôi sẽ đi với hai dự án riêng biệt. Nếu chúng độc lập với nhau, nhưng đang sống trong cùng một miền chức năng (ví dụ một hệ thống nhắn tin với các nhân viên tin nhắn khác nhau), bạn có thể đặt chúng vào một dự án. Đó là chủ yếu là một câu hỏi về sở thích cá nhân và nếu họ là hợp lý trong cùng một tên miền. –

Trả lời

4

Không có câu trả lời thẳng nào cho câu hỏi của bạn. Lấy làm tiếc.

Thông thường bạn nhóm chức năng theo quy trình làm việc hoặc vai trò. Ví dụ, nếu bạn có một luồng công việc có chứa một chức năng để thay đổi kích thước một hình ảnh, thì một hàm áp dụng một hình mờ và một hình khác sao chép các hình ảnh thì sẽ có ý nghĩa khi đặt tất cả các hàm lại với nhau vì chúng có liên quan. Bạn có nhiều khả năng thay đổi tất cả chúng khi bạn sửa đổi luồng.

Mặt khác, bạn có thể tranh luận rằng các hàm cần được tách riêng. Trừ khi bạn thay đổi đầu vào/đầu ra, không có lý do gì để sửa đổi nhiều hơn một hàm. Tuy nhiên, nếu bạn cần thay đổi nhiều chức năng, bạn sẽ kết thúc việc chỉnh sửa nhiều dự án hơn.

Như bạn thấy, cả hai đối số đều có ưu và khuyết điểm và thực sự không có câu trả lời đúng.

Hãy thử nghiệm và xem cách tiếp cận nào hoạt động tốt hơn cho giải pháp của bạn.

PS: Nguyên tắc duy nhất tôi có thể đưa ra là: nếu các chức năng thực sự nhỏ (một vài dòng mã), có thể dễ dàng đặt chúng trong cùng một webjob vì có khá nhiều chi phí trong việc duy trì nhiều cụm .

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