Làm cách nào để thực hiện tác vụ mỗi năm trong ứng dụng web tự động? Lớp Timer có hữu ích cho việc này không? Tôi cũng nghe nói về Quartz? Tôi đã đăng ký trên trang của họ nhưng có vẻ như không miễn phí. Cảm ơn sự giúp đỡ của bạn.Thực thi tác vụ mỗi năm trong ứng dụng web Java
Trả lời
Tôi khuyên bạn nên sử dụng thứ gì đó như cron. Yêu cầu của bạn rất giống với hoạt động của cron daemon UNIX. Có một thư viện java cung cấp khả năng tương tự được gọi là cron4j (http://www.sauronsoftware.it/projects/cron4j/).
Dưới đây là một số lịch trình bạn có thể sử dụng.
Quartz chắc chắn là một lựa chọn tốt, đó là free và mã nguồn mở và sử dụng Apache 2.0 License (bạn không phải đăng ký để tải xuống). Bạn cũng có thể chỉ cần sử dụng cron nếu bạn đang ở trong một môi trường * nix.
Bạn cũng có thể sử dụng một java.util.Timer
nhưng tôi sẽ chỉ làm như vậy nếu trường hợp sử dụng của bạn là cực kỳ tầm thường và bạn chắc chắn rằng bạn khởi động lại Timer
của bạn một cách chính xác dựa trên một số loại lớp kiên trì khi khởi động của ứng dụng web của bạn.
cron => hoặc một Scheduled Task trong Windows. – Max
Tôi cũng làm một công việc cron, vì nó không cần một máy ảo để chạy cả năm, chỉ cần thực hiện một lần. – Andy
Cảm ơn bạn đã trả lời nhưng xin lỗi làm thế nào tôi có thể sử dụng cronjob trong môi trường Windows? điều đó có khả thi không? Tôi đã đọc về một cronexpression nhưng nó có vẻ là chỉ cho unix? –
Cân nhắc kiểm tra với các bên liên quan kinh doanh nếu công việc chỉ chạy mỗi năm một lần thực sự phải được hoàn toàn tự động. Theo kinh nghiệm của tôi, có khả năng là sẽ có những thay đổi nhỏ đối với lịch biểu (ví dụ: ngày nào trong tuần mà công việc sẽ chạy trong năm nay?) Hoặc các bước của công việc sau một thời gian dài như vậy.
Ngoài ra, sẽ có các công việc theo lịch trình khác được thêm vào hệ thống trong tương lai không? Nếu không - nó sẽ có giá trị thêm chi phí (thực hiện, thử nghiệm, giám sát vv) của một thực hiện tự động cho hệ thống nếu chỉ có một công việc mỗi năm? Một cái gì đó chạy thường xuyên này có thể dễ dàng bị lãng quên và không ai có thể nhận thấy khi nó bị hỏng.
Cân nhắc giải pháp thay thế này: thêm nút ở đâu đó trong ứng dụng của bạn để khởi động công việc theo cách thủ công, có thể trên trang quản trị. Nếu ứng dụng của bạn có trang tổng quan hoặc trang đích, hãy thêm một số thông tin chỉ hiển thị cho một số người dùng nhất định, chẳng hạn như quản trị viên- ví dụ: "Công việc X phải chạy lần trước vào ngày 11/23/2011- hãy bắt đầu chạy tiếp theo trước ngày 30/11/2012 ".
- 1. Tác vụ theo lịch trong ứng dụng web?
- 2. khung web java trong năm 2011
- 3. Android - Muốn ứng dụng thực hiện các tác vụ mỗi giây
- 4. Ứng dụng web Java i18n
- 5. Cách hạn chế sử dụng các dịch vụ web trong ứng dụng Java?
- 6. Thực hiện đồng thời trong ứng dụng Web Java EE
- 7. Ứng dụng web thi trực tuyến
- 8. tác vụ nền java
- 9. Làm thế nào để thực thi JavaExec nhiều lần trong một tác vụ bằng Gradle?
- 10. Dịch vụ web và ứng dụng web
- 11. Thực hiện SQL trong tác vụ Gradle?
- 12. chọn lọc thực thi tác vụ trong luồng điều khiển ssis
- 13. Làm cách nào để thực thi các tác vụ lâu dài?
- 14. Vấn đề thực hiện một tập tin thực thi trong một ứng dụng Java
- 15. Lưu trữ id tác vụ cho mỗi tác vụ cần tây trong cơ sở dữ liệu
- 16. Cành: mỗi tháng trong năm
- 17. Cách đính kèm tác vụ tùy chỉnh để thực thi trước khi thực hiện nhiệm vụ kiểm tra trong sbt?
- 18. Đường dẫn hoặc nút Rails 3 thực thi tác vụ trong bộ điều khiển
- 19. Thực thi tập lệnh bằng cách sử dụng sysinternals PSExec từ ứng dụng Web Asp.Net
- 20. Làm cách nào để thực thi 'phiên' trong các dịch vụ web RESTful bằng RESTlet?
- 21. Tác vụ được lập lịch Sitecore chỉ chạy mỗi giờ
- 22. Lập lịch tác vụ trong Spring/Java
- 23. Chi tiết kết nối & thời gian chờ trong ứng dụng khách dịch vụ web java
- 24. Trình lập lịch biểu tác vụ Windows để thực hiện các tác vụ trong vài giây
- 25. Caching ứng dụng web trong Java
- 26. Grails thực thi mã mỗi môi trường
- 27. năm increment Auto trong vòng lặp mỗi năm
- 28. Một hoặc nhiều servlet cho mỗi ứng dụng web?
- 29. Thực thi Ant cho các ứng dụng web trong Intellij Idea
- 30. Làm cách nào để thực thi thủ tục được lưu trữ trong tác vụ SQL Agent?
Cách sử dụng cronjob nếu tôi đang chạy trên cửa sổ? –
@DiegoRamos: Cron dành cho môi trường Linux. Tương đương với môi trường Cron cho windows là cửa sổ task scheduler. Một phương pháp sẽ là tạo một nhiệm vụ mới bằng cách sử dụng công cụ đó và đặt một tệp jar làm tập lệnh. tệp jar có thể chứa mã mà bạn cần chạy theo định kỳ. phương pháp khác là bạn có thể tạo một kịch bản lệnh và thêm nó vào công cụ lập lịch tác vụ thay vì tệp jar. Xem liên kết sau. http://stackoverflow.com/questions/12034177/running-a-java-program-as-a-scheduled-task –