2011-02-02 43 views
6

Tôi có một tập hợp các nhiệm vụ mà tôi muốn thực hiện mỗi đêm.Cách triển khai quy trình hàng đêm trong .NET?

Các tác vụ này bao gồm, để truy vấn cơ sở dữ liệu, di chuyển và sau đó đổi tên một số hình ảnh và cập nhật bảng cơ sở dữ liệu. My first thought đã được tạo ra một công việc SQL Server và sử dụng xp_cmdshell để di chuyển các tập tin nhưng sau một chút nghiên cứu tôi quyết định chống lại nó.

Cách tốt nhất để triển khai ứng dụng này dưới dạng ứng dụng .NET là gì? Tôi có nên tạo một dịch vụ Windows không? Ứng dụng bảng điều khiển được lập lịch để chạy một lần mỗi đêm? Một số cách mát mẻ khác mà tôi thậm chí không biết?

+1

nếu bạn muốn các tác vụ theo lịch, như bạn đã gắn thẻ, có gì sai với các tác vụ đã lên lịch? –

+1

Tôi muốn dùng Windows Task Scheduler đã thử và thực sự để khởi chạy ứng dụng .NET console. –

Trả lời

10

Tôi thường chỉ làm điều này dưới dạng ứng dụng bảng điều khiển đã lên lịch. Có lẽ tôi đang nhàm chán ...

+5

Nó không phải là sexy để được chức năng :) –

+2

Tôi đồng ý ... tại sao làm cho máy tính của bạn làm bất cứ điều gì vượt quá ... một ứng dụng giao diện điều khiển đơn giản là con đường để đi. Một dịch vụ chỉ có ý nghĩa khi bạn có một cái gì đó xảy ra trong khoảng thời gian ngắn trong suốt cả ngày. – Zachary

6

Cách tuyệt vời bạn đang tìm kiếm là Quartz.NET. Đó là công việc cron cơ bản cho .NET.

1

Tôi chỉ thực hiện việc này với công cụ lập lịch tác vụ đang chạy trên máy chủ mà tôi đang làm việc. Tôi chỉ cần thiết lập để chạy vào một thời gian ngẫu nhiên trong khoảng từ 11:30 đến 12:30. Ý tưởng của Kellotti có lẽ ấn tượng hơn nhiều.

3

Tôi thường làm việc này như một nhiệm vụ được lên lịch. Nếu đó là ứng dụng giao diện .Net/C#, đừng viết vào Console.Out hoặc Console.Error (các tác vụ được lên lịch chạy khá nhiều không đầu). Thay vì sử dụng log4net và cấu hình một appender để ghi vào một file bản ghi. Bạn cấu hình một appender khác để ghi các lỗi vào sổ ghi sự kiện của windows.

Tất nhiên, cách nhanh hơn, dễ dàng hơn là viết công việc của bạn thành tập lệnh perl chứ không phải là mã được biên dịch và lập lịch biểu đó.

2

Tôi đã có rất nhiều thành công với việc sử dụng trình lên lịch tác vụ. Nó có rất nhiều tùy chỉnh mà biên giới trên đáng sợ. Tôi sẽ cho một phát bắn.

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