2012-01-25 32 views
5

Làm cách nào để vô hiệu hóa tất cả lịch trình (@Schedule annotated) trong một dự án deploing trên Glassfish 3.1
Có thể có một số mục cấu hình để thực hiện việc này?
Tôi có khoảng 20 EJB với lịch trình trong dự án của tôi và nếu tôi muốn kiểm tra/sửa chữa một điều nhỏ tôi không muốn rằng tất cả/một số bộ đếm thời gian bắt đầu.Vô hiệu hóa tất cả lịch biểu trong Glassfish 3.1

+0

Không phải chú thích '@ Schedule' được thêm vào trong EJB 3.1 (http://docs.oracle.com/javaee/6/api/javax/ejb/Schedule.html#persistent%28%29)? Bạn đang sử dụng EJB 3.1 hoặc 3.0? –

+0

Tôi đang sử dụng EJB 3.1 – alexblum

Trả lời

2

tiếc là tôi không biết nếu có một số mục cấu hình để giải quyết vấn đề của bạn, nhưng có một cách programatical làm như vậy, bằng cách gọi hủy() -method trên hẹn giờ -Objects cung cấp bởi TimerService.

Dưới đây là một ví dụ về một lớp học tôi chỉ đơn giản đưa vào các dự án khi tôi muốn thử nghiệm những thứ chỉ nhỏ:

@Stateless 
public class ScheduleCancellation { 

    @Resource 
    private TimerService timerService; 

    @Schedule(second = "0", minute = "*", hour = "*") 
    public void cancelTimers() { 
    System.out.println("cancelTimers()"); 
    for (Timer timer : timerService.getTimers()) { 
     System.out.println("schedule gone!"); 
     timer.cancel(); 
    } 
    } 

    @Schedule(second = "*", minute = "*", hour = "*") 
    public void tick() { 
    System.out.println("tick"); 
    } 
} 

Hope this helps! :)

+0

Phương thức getTimer() chỉ trả về các bộ đếm thời gian hoạt động được kết hợp với bean này. Có lẽ là có thể để có được tất cả các tính giờ trong dự án và hủy kích hoạt chúng? – alexblum

2

Truy cập TimerService#getTimers() sẽ chỉ trả về bộ tính giờ cho EJB cụ thể này. Không có cách nào được tiêu chuẩn hóa để truy cập tất cả các bộ định giờ trong vùng chứa (thực tế, đây là yêu cầu nâng cao: http://java.net/jira/browse/EJB_SPEC-47).

Tôi đoán bạn cần sử dụng một số giải pháp độc quyền của Glassfish và fiddle với nội bộ của chúng (nếu có thể). Tôi muốn hỏi GlassFish mailing list nếu tôi là bạn.

+0

Cảm ơn đề xuất của bạn. Tôi sẽ hỏi danh sách gửi thư. – alexblum

+0

Đây là câu trả lời từ nhóm thư Glassfish: http://www.java.net/forum/topic/glassfish/glassfish/disabling-all-schedules-glassfish-31 – alexblum

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