Quartz.NET - les Emplois ne fonctionnent pas?

Je suis d'essayer de mettre en œuvre Quartz.NET en tant que Service Windows en C#. Mes travaux ne sont pas de déclenchement lorsque je m'attends à déclencher... à tous, en fait, aussi loin que je peux dire?

J'ai Mon Travail, planifier de départ sur la prochaine même minute après le et en cours d'exécution "finement". Toutefois, lorsque la minute qui vient, je n'arrive pas à dire si quelque chose tourne réellement.

Je suppose que lorsque mon travail s'exécute, un CLI fenêtre pop sur l'exécution de la tâche, et la Console d'opérations pourraient être visible, (j'ai même mis un Console.ReadKey() en place pour assurer la fenêtre n'est pas l'ouverture et la fermeture si vite que je ne peux pas le voir), mais aussi loin que je peux dire que le calendrier est tout simplement pas l'exécution des travaux.

J'ai remarqué que toutes les heures sont en UTC, et que le StartTimeUtc sera réglé à l'heure UTC, qui est de +6 heures à partir de mon ordinateur local temps, mais je voudrais également supposer que le Quartz planificateur de poignées que par le calcul de temps d'exécution à partir de mon Fuseau horaire, bien que je n'ai aucun moyen que je connaisse pour confirmer, ou pour confirmer les heures RÉELLES que mon emploi du temps est réglé.

J'imagine qu'il y a une certaine façon de configurer la Journalisation Commune de l'assemblée et l'utiliser pour m'aider à savoir ce que mon statut est, mais je n'ai pas encore de comprendre ce que pour permettre à un journal de toute sorte pour les commentaires de mon Service Windows, à côté de l'écriture dans le journal des événements que j'ai créé pour elle.

Mon OnStart fonction de mon service windows

protected override void OnStart(string[] args)
    {
        eventLog.WriteEntry("--- STARTING eLoyalty Scheduler Service ---");

        //construct a scheduler factory
        ISchedulerFactory schedFact = new StdSchedulerFactory();

        //get a scheduler
        IScheduler sched = schedFact.GetScheduler();

        //construct job info
        JobDetail jobDetail = new JobDetail("eLoyaltySchedulerService", null, typeof(PortalSchedulerJob));
        jobDetail.JobDataMap["jobSays"] = "eLoyalty Scheduler Service Executing!";
        jobDetail.JobDataMap["myStateData"] = new ArrayList(); 

        //fire every minute
        Trigger trigger = TriggerUtils.MakeMinutelyTrigger();

        //start on the next even minute
        trigger.StartTimeUtc = TriggerUtils.GetEvenMinuteDate(DateTime.UtcNow);

        //name it
        trigger.Name = "NextEvenMinute";

        //schedule it
        sched.ScheduleJob(jobDetail, trigger);

        //start the schedule
        sched.Start();

        eventLog.WriteEntry("--- STARTED eLoyalty Scheduler Service ---");
    }

Mon Travail Execute() de la fonction est la suivante:

public void Execute(JobExecutionContext context)
    {
        try
        {
            string instName = context.JobDetail.Name;
            string instGroup = context.JobDetail.Group;
            JobDataMap dataMap = context.MergedJobDataMap;
            string jobSays = dataMap.GetString("jobSays");
            ArrayList state = (ArrayList)dataMap["myStateData"];
            state.Add(DateTime.UtcNow);

            Console.WriteLine("Instance {0} of PortalSchedulerJob says: {1} @ {2}", instName, jobSays, DateTime.UtcNow);
            Console.ReadKey();
        }
        catch (JobExecutionException Ex)
        {
            throw Ex;
        }
    }

Si vous pouvez m'aider à comprendre comment résoudre mon calendrier RÉEL de l'activité, j'ai peut-être capable de résoudre cela sur mon propre... ?

OriginalL'auteur Rimer | 2010-11-24