Layanan Windows atau Penjadwal Tugas Windows?


10

Saya berencana untuk membuat utilitas, yang akan menanyakan database dan menyimpan beberapa informasi (pada tabel lain dalam database). Utilitas multi-utas dan harus dijalankan setiap 5 atau 10 menit / lebih mungkin tiga kali dalam sehari.

Saya melihat dua opsi untuk mencapai ini dalam pemrograman C # / DotNet.

  • membuat layanan windows memiliki pendekatan timer di dalamnya.
  • program konsol dan jadwalkan menggunakan windows task scheduler.

Yang mana yang Anda sukai dan mengapa?


3
Saya pikir pertanyaan ini lebih cocok untuk SO
Naveen

1
Sungguh, itu pertanyaan desain perangkat lunak yang baik dan Anda mungkin akan memiliki setidaknya lima jawaban baik dalam lima jam setelah Anda bertanya pada SO.
sharptooth

1
Saya memilih untuk menutup, ini sebenarnya milik SO
Jaco Pretorius

2
Pertanyaan ini memunculkan diskusi subyektif dan / atau diperpanjang tentang manfaat dari keduanya. Ini sangat banyak pada topik di sini dan subyektif dan argumentatif di sana.

2
Saya tidak yakin, saya pikir kalimat terakhir "Yang mana yang Anda sukai dan mengapa?" akan memicu bot dekat sana. Lebih baik di sini karena jawaban yang sebenarnya bisa didapat di sini
TheLQ

Jawaban:


2

Komentar dari seorang kolega saya dari kemarin mengenai topik yang sama ini

"Akan selalu ada beragam pendapat tentang yang satu ini ... Aturan praktis saya adalah jika Anda membutuhkan sesuatu yang berjalan setiap lima menit (dan Anda tidak peduli jam berapa itu berjalan atau berapa lama lari) atau sesuatu yang merespons acara, gunakan layanan. Jika Anda membutuhkan sesuatu untuk dijalankan pada waktu tertentu setiap hari dan Anda yakin tidak akan ada putaran lebih, gunakan Penjadwal yang dilengkapi dengan OS. Jika Anda membutuhkan hibrida, gunakan keduanya solusi untuk berbagai kasus atau menemukan sesuatu dari rak. (Mungkin Quartz .Net) "

Artikel Jon Galloway dari 2005 "// TODONT: Gunakan Layanan Windows hanya untuk menjalankan proses yang dijadwalkan" adalah bacaan yang bagus. Saya menyarankan agar komentar juga dibaca karena diskusi masih berlanjut sampai hari ini dan memberikan beberapa argumen balasan yang baik juga.

Secara pribadi, saya setuju dengan rekan saya yang satu ini. Buat sesederhana mungkin selama mungkin. Dan jika Anda menggunakan server Win2008, periksa Penjadwal tugas dan semua fitur yang ditawarkan penjadwal standar. Bagi saya, pembunuhnya adalah memulai tugas yang dijadwalkan ketika suatu peristiwa terjadi.


4

Layanan dapat digunakan untuk tujuan administratif atau untuk menawarkan layanan ke beberapa aplikasi.

Jadwal digunakan untuk menjalankan tugas beberapa kali yang tidak selalu membutuhkan izin tambahan.


3

Saya telah mendengar argumen untuk menggunakan Penjadwal Windows tetapi selalu memilih untuk menulis aplikasi saya sebagai layanan. Awalnya saya pikir itu akan menjadi solusi yang lebih baik di lingkungan yang berkerumun tapi itu tidak benar. Intinya adalah saya tidak punya alasan bagus selain "merasa" ingin desain yang lebih baik.


0

mengapa Anda tidak mencoba Quartz.net,
saya menggunakannya sekali dan saya dapat mengatakan itu adalah kerangka kerja yang kuat untuk membuat penjadwal Anda sendiri, dan ia menyediakan Layanan pra-dibangun yang akan menjalankan Pekerjaan terjadwal Anda (disimpan dalam database atau hanya dalam file XML ) http://quartznet.sourceforge.net/


2
-1 Ini tidak menjawab pertanyaan sama sekali dan akan lebih cocok sebagai komentar.
Tamara Wijsman

0

Jika Anda ingin pengguna memiliki kontrol lebih tanpa Anda harus membangunnya, gunakan Penjadwal Tugas. Sepertinya Google melakukan ini dengan pembaruan aplikasi mereka. Tergantung pada pengguna, tidak sulit mengelola tugas. Keluarkan pengguna dari lingkaran dan buat layanan. Kebanyakan orang tidak akan pernah menyentuh mereka.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.