Tôi muốn o thực hiện các chuỗi thực hiện vào những thời điểm cụ thể chính xác (ví dụ: 2012-07-11 13:12:24 và 2012-07-11 15:23:45)Làm thế nào để gọi một chuỗi để chạy vào thời gian cụ thể trong java?
Tôi đã kiểm tra ScheduledExecutorService
, nhưng chỉ hỗ trợ thực thi sau khoảng thời gian cụ thể từ lần chạy đầu tiên và tôi không có bất kỳ khoảng thời gian cố định nào, thay vào đó tôi có thời gian từ cơ sở dữ liệu để thực hiện các tác vụ trên.
Trong một câu hỏi trước cho một vấn đề khác nhau here, TimerTask là giải pháp, nhưng obviuosly tôi không thể làm cho một sợi TimerTask
như Runnable
và TimerTask
cả hai đều có phương pháp run
mà cần phải được thực hiện. Câu hỏi ở đây nếu tôi tạo chủ đề mở rộng TimerTask
và có một triển khai thực hiện run()
, điều đó có hiệu quả không? Nếu không, thì làm sao tôi có thể làm những gì tôi đang cố làm?
Tái cấu trúc giải pháp của bạn để bạn không tạo chuỗi của riêng mình. Thay vào đó, hãy mở rộng 'TimerTask'. –
@MarkoTopolnik sẽ giải quyết xung đột .. nhưng trên thực tế tôi cần các chủ đề vì tôi sẽ có nhiều nhiệm vụ (có bốn loại nhiệm vụ) và tôi muốn mỗi tác vụ duy nhất được thực hiện riêng trong một chuỗi. – Sami
Sau đó, thực hiện một wrapper 'TimerTask' mỏng chứa' Thread' của bạn như là một instance var và sẽ 'start' thread của bạn tại thời gian đã lên lịch. Bạn thậm chí có thể sử dụng một lớp con 'TimerTask' ẩn danh mà thấy' Thread' bằng cách đóng trên một var cục bộ. Và bây giờ tôi thấy đó là chính xác những gì @AkhilDev đang đề xuất bên dưới :) –