[C#] Meerdere Windows services beheren.. hoe?

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Kryziek
  • Registratie: Juni 2010
  • Laatst online: 14-07 17:24

Kryziek

bb || !bb

Topicstarter
Hallo,

ik heb de opdracht gekregen om een applicatie in C# te schrijven die een bepaald proces overneemt en makkelijker te beheren maakt.
De huidige situatie is dat er een verschillende Scheduled tasks ingesteld staan op de (windows) server die op een bepaalde tijd een batch bestand uitvoeren die op zijn beurt weer een php in de commandline uitvoert.

Ik moet dus een app maken waarin de taken niet meer via een scheduled task gaan maar in een windows service uitgevoerd worden. Omdat er anders een command prompt tevoorschijn komt bij een gebruiker en een service niets laat zien. In de app moet je dus de verschillende taken kunnen zien, aanpassen(naam, tijdschema etc.) en uitschakelen. Het is mij wel gelukt een losse Service te maken en een tijdschema maken gaat me ook wel lukken, maar het laten uitvoeren van verschillende taken om verschillende tijden niet.

Zelf had ik bedacht om voor elke taak een aparte Service te maken zodat het makkelijk is om een bepaalde taak uit te schakelen. Maar ik weet niet hoe ik vanuit C# code een service kan maken. Dus als ik in de app een nieuwe taak wil toevoegen bijvoorbeeld.

Maar ik heb geen idee waar ik moet beginnen want ik weet niet hoe ik het beste de taken kan opslaan. Ze willen geen database omdat de app zoveel mogelijk zelfstandig moet werken. Kan ik dan het beste een xml gebruiken of iets anders? Er moet bijvoorbeeld opgeslagen worden hoe de taak heet, in welk tijdschema de batch uitgevoerd moet worden en welk php bestand uitgevoerd moet worden.

Kunnen jullie mij in een richting duwen want ik ben zelf een beetje vast gelopen..

Ik heb op google wel gezocht hoe je een service maakt vanuit code maar dan krijg ik alleen tutorials hoe je een losse service maakt, dus een los project.
Ik gebruik Visual Studio 2010.

Mvg.

[ Voor 5% gewijzigd door Kryziek op 22-10-2012 16:24 ]


Acties:
  • 0 Henk 'm!

  • __fred__
  • Registratie: November 2001
  • Laatst online: 10-07 07:28
Ik zou gewoon de task scheduler blijven gebruiken. Die heeft nogal wat opties voor event logging, scheduling, etc. De scheduler is het probleem niet, het gaat om het script erachter. Daar zijn oplossingen voor, bijvoorbeeld.

http://serverfault.com/qu...led-task-without-a-window
http://superuser.com/ques...e-a-command-prompt-window

Dat scheelt je nogal wat programmeerwerk en is waarschijnlijk in 5 minuten klaar.

Acties:
  • 0 Henk 'm!

  • ocf81
  • Registratie: April 2000
  • Niet online

ocf81

Gewoon abnormaal ;-)

dat zijn inderdaad goede oplossingen.

als het écht met een service moet heb je misschien wel wat aan de links die in de antwoorden op deze vraag staan: http://stackoverflow.com/...a-windows-service-using-c

© ocf81 1981-infinity
Live the dream! | Politiek Incorrecte Klootzak uitgerust met The Drive to Survive
Bestrijd de plaag die woke heet! | <X> as a Service --> making you a poor & dependent slave


Acties:
  • 0 Henk 'm!

  • Kryziek
  • Registratie: Juni 2010
  • Laatst online: 14-07 17:24

Kryziek

bb || !bb

Topicstarter
Ze willen graag van de scheduler af omdat ze het niet telkens handmatig willen invoeren. Daarom moet ik dus een app maken waarin het allemaal gedaan wordt. Ze willen gewoon een naam, tijd schema en een php file selecteren, meer niet.
Als het anders kan wil ik dat ook wel proberen, als het resultaat maar hetzelfde is. Dus een proces die op een ingesteld tijd een php script uitvoert die niet zichtbaar is voor een ingelogde gebruiker. Als je de scheduler kunt beheren vanuit C# mag dat ook, maar daar kon ik niets over vinden op google.

Zelf had ik ook al bedacht om elke minuut(of kwartier) door een xml te loopen en de tijd te vergelijken met de huidige tijd, maar ik lees overal dat het geen goede methode is en zwaar is voor de cpu. Maar dan heb je wel maar één service nodig, dat tackelt één probleem maar creëert een ander.

[ Voor 5% gewijzigd door Kryziek op 22-10-2012 16:57 ]


Acties:
  • 0 Henk 'm!

  • SaphuA
  • Registratie: September 2005
  • Laatst online: 06-05 16:40
.

[ Voor 99% gewijzigd door SaphuA op 31-01-2022 15:10 ]


Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 12-07 22:24
Kryziek schreef op maandag 22 oktober 2012 @ 16:51
Zelf had ik ook al bedacht om elke minuut(of kwartier) door een xml te loopen en de tijd te vergelijken met de huidige tijd, maar ik lees overal dat het geen goede methode is en zwaar is voor de cpu. Maar dan heb je wel maar één service nodig, dat tackelt één probleem maar creëert een ander.
Hopelijk heb je zelf ondertussen gerealiseerd dat de Task Scheduler niets anders is dan een door Microsoft meegeleverde service en management UI die om de zoveel tijd andere services of processen kan opstarten. Je beschrijft hier feitelijk gewoon een Task Scheduler versie 0.1-beta...
Kryziek schreef op maandag 22 oktober 2012 @ 16:51:
Als je de scheduler kunt beheren vanuit C# mag dat ook, maar daar kon ik niets over vinden op google.
/me tikt in op Google: "task scheduler C# API"

IN DE TOP 10 RESULTATEN MIDDEN OP DE EERSTE PAGINA
staat de
Task Scheduler Managed Wrapper
Een open source managed code (C#) wrapper om de Task Schedular APIs.


Weet niet waar jij op hebt lopen zoeken, maar je mag duidelijk weleens de slaap uit je ogen wrijven en/of je caffeïne intake verhogen.


offtopic:
(Overigens; PHP op een Windows machine? WTF!? Wie heeft dat nou weer bedacht?)

Acties:
  • 0 Henk 'm!

  • spleethoven
  • Registratie: Oktober 2010
  • Laatst online: 24-01-2024
En waarom zou php niet op een windows machine kunnen?

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 16-07 15:38
spleethoven schreef op dinsdag 23 oktober 2012 @ 16:04:
En waarom zou php niet op een windows machine kunnen?
Wat heeft dat met de vraag te maken?

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Kryziek
  • Registratie: Juni 2010
  • Laatst online: 14-07 17:24

Kryziek

bb || !bb

Topicstarter
Na overleg willen ze helemaal niets met de scheduler te maken hebben.
Ik zag er wel wat in, maar klant is koning. xD

Iedereen toch bedankt voor het meedenken! Waardeer ik enorm!

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Kryziek schreef op dinsdag 23 oktober 2012 @ 19:18:
Na overleg willen ze helemaal niets met de scheduler te maken hebben.
Ik zag er wel wat in, maar klant is koning. xD

Iedereen toch bedankt voor het meedenken! Waardeer ik enorm!
Maar hebben ze daar ook een goede reden voor? Natuurlijk is de klant uiteindelijk koning, maar het is ook je taak als ontwikkelaar om de klant te begeleiden in het traject, en om de juiste oplossingen voor te dragen. Ook tegen klanten mag je best kritisch zijn.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Kryziek
  • Registratie: Juni 2010
  • Laatst online: 14-07 17:24

Kryziek

bb || !bb

Topicstarter
1. Ze willen een applicatie die zo onafhankelijk mogelijk is.
2. Het zijn Apple fanboys en willen niet afhankelijk zijn van Windows.
3. Het is voor mij een goede opdracht om meer te leren van C#.

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Kryziek schreef op dinsdag 23 oktober 2012 @ 20:51:
1. Ze willen een applicatie die zo onafhankelijk mogelijk is.
2. Het zijn Apple fanboys en willen niet afhankelijk zijn van Windows.
3. Het is voor mij een goede opdracht om meer te leren van C#.
En dan maak je er een Windows service van? Verder kan je ook oefenen met C# als je een schil om de Task Sceduler heen schrijft. Dingen als recurring items enzo zijn lastiger om goed te maken dan je denkt. De kans dat je daar fouten mee maakt is zeer groot. Maar je moet het natuurlijk lekker zelf weten, maar je moet niet gek opkijken dat je uiteindelijk minder functionaliteit in je applicatie hebt zitten.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Kryziek
  • Registratie: Juni 2010
  • Laatst online: 14-07 17:24

Kryziek

bb || !bb

Topicstarter
Ik heb ze ook uitgelegd dat het met een schil er omheen kon en dat windows voor het afhandelen van geplande taken eigenlijk al veel functionaliteit heeft. Maar ze wouden het echt niet.

Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Dus ze laten iemand die het "nog moet leren" een task scheduler light schrijven. Iets wat microsoft al sinds windows 95 goed in orde heeft. Met alle risico's en extra kosten die daarbij horen...

Waarom zijn het altijd de nitwits die de touwtjes in handen hebben in dit soort zaken? :/

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 10:07
Tsja de task manager is nu eenmaal zeer lastig in gebruik en beperkt in mogelijkheden. En iedereen moet toch een keer z'n eigen wiel uitvinden?

[ Voor 10% gewijzigd door sig69 op 24-10-2012 08:05 ]

Roomba E5 te koop


Acties:
  • 0 Henk 'm!

  • bastv
  • Registratie: September 2005
  • Laatst online: 13-07 14:48
Als je dan echt een schedular wil bouwen zou ik dat doen met Quartz.net http://quartznet.sourceforge.net/
je jobs van je dan in een config file configureren
http://stackoverflow.com/...-when-config-file-changes

Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 12-07 22:24
sig69 schreef op woensdag 24 oktober 2012 @ 08:04:
Tsja de task manager is nu eenmaal zeer lastig in gebruik en beperkt in mogelijkheden. En iedereen moet toch een keer z'n eigen wiel uitvinden?
Lastig in gebruik, maar zeker niet beperkt in mogelijkheden. (De grote hoeveelheid niet altijd even goed gedocumenteerde of georganiseerde mogelijkheden is juist waarom de scheduler lastig in gebruik is, zou ik zeggen.)

Je eigen wiel uitvinden is ook helemaal niet erg, mits je wel voldoende vermogen tot zelfbeoordeling hebt om je te realiseren dat er op gaan rijden en je ermee in het publieke verkeer gaan begeven misschien niet een al te slim idee is wanneer jouw wiel vierkant of zeshoekig blijkt te zijn er een slorigde tien spaken ontbreken.

Acties:
  • 0 Henk 'm!

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 10:07
Sorry, /sarcasm vergeten..

Roomba E5 te koop


Acties:
  • 0 Henk 'm!

  • JvdS
  • Registratie: December 2003
  • Laatst online: 16-07 15:51
R4gnax schreef op woensdag 24 oktober 2012 @ 08:55:
[...]
Je eigen wiel uitvinden is ook helemaal niet erg, mits je wel voldoende vermogen tot zelfbeoordeling hebt om je te realiseren dat er op gaan rijden en je ermee in het publieke verkeer gaan begeven misschien niet een al te slim idee is wanneer jouw wiel vierkant of zeshoekig blijkt te zijn er een slorigde tien spaken ontbreken.
De software die wij verkopen doet exact (en meer) wat je nu gaat ontwikkelen, echter hebben we het al 26 jaar door ontwikkeld. Wees ervan bewust dat je er veel tijd (en dus geld) in moet stoppen om je doel te bereiken.

[commerciële modus uit]
Als ik je vraagstelling zo lees lijkt het alsof je niet weet waar je aan begint. Ik zou eerst beginnen met een requirements analyse en vervolgens kijken of het niet anders opgelost kan worden dan gelijk zelf een C# programma beginnen te ontwikkelen.
[/commerciële modus uit]

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 16-07 15:38
Jullie hebben 26 jaar ontwikkeld aan een GUI voor de windows task manager?

https://niels.nu


Acties:
  • 0 Henk 'm!

  • JvdS
  • Registratie: December 2003
  • Laatst online: 16-07 15:51
Nee, veel breder: o.a. enterprise job scheduling en performance & capacity management tools.

Acties:
  • 0 Henk 'm!

  • Kryziek
  • Registratie: Juni 2010
  • Laatst online: 14-07 17:24

Kryziek

bb || !bb

Topicstarter
Ik heb nu een XML bestandje gemaakt met daarin de taken en bijbehorende tijden, interval, php bestand etc.
In de service laat ik een timer lopen die elke minuut afloopt en dan de xml checkt of er een overeenkomende tijd is met de huidige systeemtijd. Mijn opdrachtgevers zijn het met deze methode eens. _/-\o_

Dat Quartz verhaal houd ik in mijn achterhoofd als back-up manier.

Op het moment loop ik stage bij dit bedrijf, dus qua kosten valt het heel erg mee. ;)

Acties:
  • 0 Henk 'm!

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 10:07
En nu maar wachten totdat er een keer een gepland script niet uitgevoerd wordt..

Roomba E5 te koop


Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 12-07 22:24
Kryziek schreef op vrijdag 26 oktober 2012 @ 16:05:
Mijn opdrachtgevers zijn het met deze methode eens. _/-\o_

[...]

Op het moment loop ik stage bij dit bedrijf, dus qua kosten valt het heel erg mee. ;)
Als je opdrachtgevers daar serieus mee akkoord gaan als acceptabele oplossing dan zijn ze niet slim bezig. Klinkt als een paar heldere lichten waarbij het peertje tien jaar geleden doorgebrand is en nooit vervangen.

Dat je als stagair zijnde zo slecht begeleid wordt dat je überhaupt tot deze oplossing hebt kunnen komen, wil zeggen dat er wel meer mis moet zijn ook. Een stagair een eindje laten grasduinen om inzichten op te doen is okee, maar op een gegeven moment moet je als mentor toch echt instappen en advies of sturing geven.

(Het zal wel weer een klein bedrijfje zijn dat stagairs als goedkoop uit te buiten werkkrachten ziet...)

Acties:
  • 0 Henk 'm!

  • markvt
  • Registratie: Maart 2001
  • Laatst online: 16-07 16:09

markvt

Peppi Cola

Lijkt me geen best bedrijf om stage bij te lopen ;)
De huidige situatie is dat er een verschillende Scheduled tasks ingesteld staan op de (windows) server die op een bepaalde tijd een batch bestand uitvoeren die op zijn beurt weer een php in de commandline uitvoert.
En je runt een php script op de commandline, wat wordt hier in vredesnaam voor taak ruitgevoerd? Staat die file "online" dan kan je nog beter een cronjob ergens op een linux bak aanzetten Wikipedia: cron

van-tilburg.info -=- meka (sega emulator) - Proud MEDION fanclub member - KOPPIG VOLHOUDEN !


Acties:
  • 0 Henk 'm!

  • V1ncam
  • Registratie: November 2009
  • Laatst online: 12-12-2021
De helft van de reacties hier geven aan waarom het subforum programming op tweakers zo leeg en stil is. Iedereen die niet alles al weet en niet voldoet aan de superioriteit van de tweakers wordt meteen afgebrand.

Je ziet bij die reacties gewoon het gevoel van: "Aaah ik ben beterrrr, lekker lekker lik lebber" eraf druipen.

Acties:
  • 0 Henk 'm!

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 07-07 14:42
V1ncam schreef op zondag 28 oktober 2012 @ 21:52:
De helft van de reacties hier geven aan waarom het subforum programming op tweakers zo leeg en stil is. Iedereen die niet alles al weet en niet voldoet aan de superioriteit van de tweakers wordt meteen afgebrand.

Je ziet bij die reacties gewoon het gevoel van: "Aaah ik ben beterrrr, lekker lekker lik lebber" eraf druipen.
Dat valt best mee. Begrijp me niet verkeerd, ik snap best wat je bedoeld. Maar een wat meer ervaren ontwikkelaar leest de TS en denkt. "WHYYYY GOD WHYYYY" :+ :P . (ik in ieder geval wel)

Daarom heb had ik zoiets van, laat ik maar niet reageren.. :+. En je ziet duidelijk dat andere mensen ook deze reactie hadden, maar dit dan ook gepost hebben, al dan niet in een andere (nettere) bewoording. Er zijn ook zeker goede hints gegeven, zoals Quartz e.d.

Opmerkingen van mensen over wiel opnieuw uitvinden, en semi-rants over hoe onverstandig deze oplossings richting is, zijn toch niet meer dan terecht? Zolang ze onderbouwd zijn en niet op de man spelen zie ik het probleem niet. Wat moeten we dan? Niks zeggen? Daar leert Kryziek ook niks van.

Nee, in een topic als deze, kan je het beste zoveel mogelijk meningen en rants te lezen krijgen, daar leer je namelijk het meeste van. Hoe meer verschillende invalshoeken er hier gepost worden, hoe beter.
En als iedereen zegt dat dit niet een handige manier is, dan heeft de TS iig wat stof om mee terug te gaan naar zijn stage begeleider.

Zegt zijn stage begeleider vervolgens, BOEIE! doen we lekker toch!. Sobeit. De enige winst wat Kryziek dan heeft is een nieuw perspectief op dit probleem, en dat is ook waardevol.
Pagina: 1