2012-01-24 25 views
8

Tôi có tình huống sau đây:thạch anh lên lịch tối đa số chủ đề sở hữu

8 nhiệm vụ theo lịch trình để chạy với org.quartz.threadPool.threadCount bộ đến 5.

Nhưng trong thực tế tôi có thể thấy rằng tất cả 8 nhiệm vụ đang chạy.

Làm thế nào điều này có thể thực hiện được?

Nếu tôi đặt org.quartz.threadPool.threadCount=5 và tôi đã gửi 10 tác vụ cho thạch anh, đúng là chỉ có 5 tác vụ sẽ chạy song song?

Ý nghĩa của thuộc tính org.quartz.threadPool.threadCount là gì?

Tôi có thiết kế như:

  1. Chúng tôi có một số nhiệm vụ mà làm một số công việc trên thực thể trong db
  2. Chúng tôi có JobRunner đặc biệt mà thực hiện một nhiệm vụ
  3. Chúng tôi quét cho các nhiệm vụ để chạy và lịch trình công việc cho chạy trong dịch vụ thạch anh được cấu hình với SchedulerFactoryBean với org.quartz.threadPool.threadCount thiết lập để 5.
  4. Như tôi hiểu nếu dịch vụ thạch anh với SchedulerFactoryBean sẽ có 5 nhiệm vụ đang chạy và nếu chúng ta sẽ cố gắng lên lịch nhiệm vụ bổ sung thạch anh chính nó nên ném một n Ngoại lệ. Điều này có đúng không?

Cảm ơn.

+2

Khi bạn nói rằng tất cả 8 công việc đang chạy, bạn có nghĩa là 'scheduler. getCurrentlyExecutingJobs() 'trả về một danh sách tám công việc? Hoặc tất cả chúng đang gửi đầu ra tới System.out? Hay cái gì? –

+0

Tôi đã chỉnh sửa mô tả về câu chuyện. Vì vậy, nếu tôi lên lịch 8 nhiệm vụ cho Scheduler và thiết lập threadCount = 2, không có nghĩa là 2 luồng sẽ chạy 8 nhiệm vụ thời gian lặn và bối cảnh thay đổi? – user253202

Trả lời

12

Đúng là org.quartz.threadPool.threadCount của QUARTZ chỉ là số thực thi đồng thời/song song tối đa.

Điều đó có nghĩa rằng nếu bạn sắp xếp X công việc lớn hơn THREADCOUNT sau đó K = X - THREADCOUNT công việc sẽ chờ ít nhất một misFired mili giây trong một số loại đợi cho THREADCOUNT công việc để kết thúc .

Do đó Tổng số công việc đã lên lịch (hoặc tác vụ) có thể là Số công việc chờ trong hàng đợi + Số nhiệm vụ đang chạy. Với Số tác vụ đang chạy ít hơn hoặc bằng threadCount.

+0

có khả năng 2 công việc sử dụng cùng một luồng không? –

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