2012-09-10 32 views
9

Tôi chỉ muốn biết nếu có phạm vi "JOB" trong đợt mùa xuân, như phạm vi "BƯỚC"? Nếu không, chúng tôi có nên phát triển phạm vi tùy chỉnh của chúng tôi hay không, hoặc có lựa chọn nào tốt hơn không?Có phạm vi "công việc" hàng loạt mùa xuân không?

Xin cảm ơn trước.

+0

bạn có thể mở rộng câu hỏi của mình với nhiều chi tiết hơn về những gì bạn muốn đạt được không? –

+0

Tôi đã tạo một bean dataHolder để chia sẻ dữ liệu giữa các bước khác nhau của Công việc. Công việc của tôi, có thể được thực hiện asynchrounously bởi nhiều chủ đề, vì vậy cho các yêu cầu an toàn thread, tôi đã muốn tạo ra một bean dataHolder cho mỗi công việc thực hiện. –

Trả lời

0

nếu dữ liệu của bạnQuá đậu giữ trạng thái, bạn có thể dùng thử với số bean scope thích hợp, ví dụ: nguyên mẫu

+0

Nhưng với phạm vi nguyên mẫu, mỗi lần tôi sẽ tham chiếu bean dataHolder của tôi từ một bước công việc, một bean mới sẽ được tạo ra? Tôi, tôi muốn sử dụng cùng một bean dataHolder từ tất cả các bước của công việc nhất định. –

+0

Tôi vẫn chưa thực sự chắc chắn về cách sử dụng của bạn, nhưng một trạng thái chia sẻ luồng đơn giản có thể được thực hiện với http://docs.oracle.com/javase/tutorial/essential/concurrency/syncmeth.html –

+0

Cảm ơn bạn đã giúp đỡ, để giải quyết vấn đề của tôi, cuối cùng tôi tạo ra một dataHolderResolver Bean (Singleton), chứa phương thức getDataHolder (int jobId) trả về DataHolder liên quan đến jobId đã cho. Tôi đã khai báo bean dataHolder của tôi như là một mẫu thử nghiệm, và tôi đã sử dụng tính năng tìm kiếm phương thức mùa xuân trên bean dataHolderResolver, để có được một tham chiếu dataHolder mới, nếu nó chưa được tạo và lưu trữ trong một jobId đã cho. Nhưng, tôi nghĩ rằng sẽ rất hữu ích khi có phạm vi 'công việc' trong phiên bản tiếp theo của đợt Spring. –

6

Một jira đã được mở một số lần trước trên tracker vấn đề hàng loạt mùa xuân về vấn đề này: https://jira.springsource.org/browse/BATCH-1701

Yêu cầu kéo đã được đệ trình là tốt, hy vọng nó sẽ được hợp nhất sớm, bởi vì tôi có sử dụng này trường hợp quá: https://github.com/SpringSource/spring-batch/pull/41

có nhiều cách giải quyết trong thời gian trung bình, mỗi nhược điểm của nó, xem câu trả lời này trên stackoverflow: https://stackoverflow.com/a/8121102/470107

+0

Cảm ơn bạn Raphael;) –

+0

Tôi nghĩ liên kết thứ ba là cách chính xác để thực hiện: bạn có "Phạm vi thực hiện công việc", tốt hơn phạm vi "công việc" nếu bạn muốn có từng chuỗi riêng biệt với dữ liệu riêng của mình –

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