Nơi tôi đang làm việc đang cố gắng thiết lập một số quy tắc cơ bản và cuộc tranh luận mà chúng ta hiện đang có là các thư viện địa phương và các dịch vụ web để sử dụng lại mã. Các dịch vụ web dường như là lựa chọn phổ biến ở hầu hết các công ty và đó là điều mà hầu hết các nhà phát triển ở đây đang nghiêng về.
Tôi chỉ không thể thấy cách bạn có thể sử dụng hiệu quả các dịch vụ web cho bất kỳ công việc nghiêm túc nào. Làm cách nào tôi có thể thực hiện an toàn nhiều cuộc gọi dịch vụ nếu tôi không thể sử dụng giao dịch?
Giả sử tôi có một công việc định kỳ thu hút khách hàng từ cơ sở dữ liệu của chúng tôi đáp ứng một điều kiện nhất định mà họ cần được thông báo. Họ được gửi fax, email và một vé được tạo ra để theo dõi vấn đề trong nội bộ. Đó là 3 cuộc gọi dịch vụ khác nhau sẽ xảy ra cho mỗi khách hàng trong một vòng lặp for.
Nếu xảy ra lỗi ở bất cứ đâu trong đó, có thể, ví dụ, fax và email được gửi cho khách hàng, nhưng vé không được tạo. Hoặc tệ hơn, công việc định kỳ này có thể chứa một lỗi khiến nó bị lỗi tại cùng một thời điểm và nó liên tục gửi email cho cùng một khách hàng. Nếu các thư viện đều là địa phương, mọi thứ chỉ có thể được gói gọn trong một giao dịch, và không điều gì sẽ xảy ra. Nhưng chúng tôi đang sử dụng các dịch vụ web trong ví dụ này.
Lưu ý rằng các phương thức email và fax thực sự chèn dữ liệu vào các bảng xếp hàng dựa trên cơ sở dữ liệu, lần lượt được xử lý bởi một quy trình công việc định kỳ riêng biệt. Vì vậy, các cuộc gọi đến phương thức dịch vụ "gửi email" và "gửi fax" có thể bị hủy bỏ hiệu ứng phụ miễn phí nếu cần.
Một tùy chọn là đặt toàn bộ đoạn mã này vào chính dịch vụ web, vì vậy chính dịch vụ web sẽ gọi các phương thức tạo email, fax và vé trong một giao dịch. Nhưng sau đó, chúng tôi đang tạo ra một phương thức dịch vụ web chỉ để sử dụng giao dịch; không có lý do chính đáng nào chúng ta thực sự cần phải gọi phương thức này từ bất cứ đâu ngoại trừ tập lệnh cron này.
Làm thế nào bạn thường xử lý phương pháp này?