Tại sao Trình lập lịch tác vụ Windows cố gắng khởi chạy nhiều phiên bản?


9

Chúng tôi có một số tác vụ được lên lịch của Windows chạy trên một Máy chủ web Server 2008 (không phải R2) trong một cụm.

Gần đây chúng tôi đã chuyển từ một cụm máy chủ web gốc sang Cluser máy chủ web mới (Server 2008 - không phải R2).

Máy chủ web mới (trong cụm) chạy Nhiệm vụ Windows được thiết lập giống như trên bản gốc mà chúng tôi tin.

NHƯNG bây giờ chúng tôi thấy rằng trên Windows Server mới, Trình lập lịch tác vụ Windows dường như muốn bắt đầu ngay lập tức mỗi tác vụ ba lần.

Nếu chúng ta đặt tùy chọn để xếp hàng một nhiệm vụ mới, chúng ta sẽ nhận được:

ID sự kiện Trình lập lịch tác vụ ID 324 "{9a1a8411-b042-45ff-8e6b-89874df230d7}" của tác vụ "\ Báo cáo khách hàng" và sẽ khởi chạy nó ngay khi thể hiện "{2bcc3df6-ea3b-4453-90c2388

Nếu chúng ta đặt tùy chọn dừng một tác vụ hiện có, chúng ta sẽ nhận được:

Phiên bản sự kiện ID 323 Trình lập lịch tác vụ đã dừng "{e685a910-b32b-414e-85fd-96bbe54314a2}" của tác vụ "\ Báo cáo khách hàng" để khởi chạy phiên bản mới "{4db66265-1f51-4ede-8535-ac7c3c5c

Cài đặt tick:

  • Cho phép nhiệm vụ được chạy theo yêu cầu.

  • Chạy nhiệm vụ càng sớm càng tốt sau khi bắt đầu theo lịch trình bị bỏ lỡ.

  • Dừng nhiệm vụ nếu chạy lâu hơn 1 giờ.

  • Nếu tác vụ đang chạy không kết thúc khi được yêu cầu buộc nó dừng lại.

  • Chỉ bắt đầu tác vụ nếu máy tính bật nguồn AC.

  • Dừng tác vụ nếu máy tính chuyển sang nguồn pin.

Tùy chọn đã chọn: Nếu tác vụ đã chạy - dừng phiên bản hiện có.

Lưu ý: Chúng tôi đã di chuyển các tác vụ từ máy chủ này sang máy chủ khác trong cụm để xem liệu Trình lập lịch tác vụ trên máy chủ cụ thể mà chúng tôi đã chọn có gây ra sự cố không. Hành vi tương tự.

Nó có thể là một cái gì đó để làm với việc xây dựng các máy chủ mới?

Chúng tôi có các tác vụ rất giống nhau được thiết lập trên một cụm máy chủ khác hoạt động tốt mà không cần khởi động nhiều lần này. So sánh các tác vụ đó với các tác vụ ở đây - dường như không có gì khác biệt rõ ràng về các cài đặt có sẵn cho chúng tôi thông qua các tùy chọn trong Trình lập lịch tác vụ.

Kích hoạt: Tác vụ được lên lịch để được kích hoạt hàng ngày, mỗi giờ một lần - và sẽ bị dừng nếu vượt quá thời gian này.

Hành động: Chạy tệp .bat.

Điều gì có thể gây ra điều này / nơi chúng ta có thể nhìn để xem logic nào đang khiến các tác vụ bắt đầu nhiều lần theo cách này?


Điều gì được thiết lập để kích hoạt nhiệm vụ?
Bart Silverstrim

Câu trả lời:


3

Đây là vấn đề được mô tả trong KB2617046 : nếu bạn tắt và sau đó kích hoạt tác vụ theo lịch trình, các kích hoạt trùng lặp sẽ được tạo. Các thuộc tính tác vụ vẫn chỉ hiển thị một kích hoạt, nhưng bạn có thể thấy rằng tác vụ được kích hoạt nhiều lần cùng một lúc trong lịch sử tác vụ.

Có một hotfix có sẵn từ Microsoft. Các hotfix cho biết nó dành cho Vista, nhưng nó hoạt động trên Server 2008 SP2. Sau khi áp dụng hotfix, bạn phải vô hiệu hóa và sau đó kích hoạt lại trình kích hoạt trên tác vụ của mình (đóng cửa sổ thuộc tính kích hoạt ở giữa để áp dụng các thay đổi) để loại bỏ các bản sao.



Tôi đang gặp một vấn đề tương tự trong Windows Server 2016, nơi tôi có thể thấy rằng tác vụ được bắt đầu và chạy chính xác + vài chục lần thử chạy lại. Thật không may, tất cả các liên kết trên bị hỏng. Nó được đặt đúng và nó sẽ chỉ chạy một lần ở khoảng thời gian đã đặt, nhưng nó cũng tràn ngập lịch sử với các cảnh báo. Bất kỳ ý tưởng nếu Windows Server 2016 có một vấn đề tương tự và khắc phục? Cảm ơn.
Alexei

1

Chúng tôi đã quản lý để dừng Trình lập lịch tác vụ Windows khởi động nhiều quy trình bằng cách đánh dấu tùy chọn "Nếu tác vụ không thành công, hãy khởi động lại mỗi:" với mặc định là "1 phút" và "Cố gắng khởi động lại tối đa: 3 lần".

Điều này dường như phản trực giác như

  1. các tác vụ dường như không thành công (các hành động chúng thực hiện đã chạy nhiều lần)

và 2. dù sao thì các nhiệm vụ dường như đã quyết định bắt đầu ba lần.

Ngoài ra - chúng tôi có các tác vụ tương tự được thiết lập trên máy chủ web thử nghiệm và không cần thiết phải đánh dấu tùy chọn này.


0

Vì bất kỳ lý do gì, tôi không thể thêm nhận xét vào câu trả lời của bạn, tuy nhiên có khả năng là "không thành công" vì tác vụ đang trả về mã thoát khác 0. Bạn có thể khắc phục điều này bằng cách lên lịch cho một kịch bản để chạy thay vì quá trình tác vụ thực tế. Bạn sẽ có tập lệnh chạy quy trình tác vụ thực tế và sau khi hoàn thành kiểm tra mã thoát của quy trình dựa vào danh sách các mã thành công đã biết. Nếu thành công, hãy thoát đoạn mã với mã 0 và nếu nó không thành công, hãy chuyển mã thoát thất bại. Bằng cách này, bạn vẫn giữ được khả năng lập lịch tác vụ để chạy lại tác vụ trong trường hợp thực sự không thành công.

Thật không may, không có gì lạ khi các quy trình được thực hiện thành công để trả về mã thoát khác 0. Bạn sẽ cần kiểm tra tài liệu (hoặc hỏi nhà phát triển) về các mã thoát khác nhau là gì.


Cần có 50 đại diện để bình luận về câu hỏi và câu trả lời của người khác ...
EEAA

Cảm ơn EEAA. Và để theo dõi bài viết của tôi, có vẻ như Pual đã sẵn sàng chạy một tập lệnh bó. Không biết cái gì trong tập lệnh của anh ta và mã thoát nào đang trả về, thật khó để nói tại sao nó lại trả về một mã khác 0, nhưng nhận xét / câu trả lời của tôi vẫn phải chính xác, Trình lập lịch tác vụ cho rằng nó sẽ trả về mã thoát 0 khi nó không.
Matt

0

Tôi đã gặp vấn đề này trên WinServer2008 R2 vài tháng trước. Tôi đã thử nhiều giải pháp nhưng không có gì giải quyết được vấn đề.

Có vẻ như sau đây để giải quyết vấn đề: Trên Ứng dụng Lập lịch tác vụ: chọn tác vụ: sau đó từ menu bên phải, nhấp vào 'Kết thúc', nó sẽ hỏi bạn 'Bạn có muốn kết thúc tất cả các phiên bản của tác vụ này không?' bấm vào 'Có'.

Tôi hy vọng điều này sẽ giải quyết vấn đề của bạn.


-1

Vấn đề tương tự đã xảy ra ở đây, bất kỳ tác vụ nào cũng được xếp hàng nên đã duyệt tất cả các tác vụ đang chạy hoặc trong hàng đợi kết thúc tất cả và khởi động lại máy chủ mà nó đã được sửa

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.