Quartz.Net не работает.Плохой кодЯ уже пытался разместить вызов IJob следующим образом: Quartz.IJob, но он тоже не работает - PullRequest
0 голосов
/ 24 августа 2018
  1. Элемент списка

Я пытаюсь реализовать Quartz.Net в своем проекте, я поместил два .cs, где я объявляю публичные классы, однако код, который я включаю, даетme error, которые я подробно опишу ниже:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Quartz;
using Quartz.Listener;
using System.Net;
using System.Net.Mail;
using System.Threading.Tasks;

namespace WEB_Project.Models
{
    public class EmailJob : IJob /*Error Line*/
    {
        public void Execute(IJobExecutionContext context)
        {
            using (var message = new MailMessage("user@gmail.com", "user@live.co.uk"))
            {
                message.Subject = "Test";
                message.Body = "Test at " + DateTime.Now;
                using (SmtpClient client = new SmtpClient
                {
                    EnableSsl = true,
                    Host = "smtp.gmail.com",
                    Port = 587,
                    Credentials = new NetworkCredential("user@gmail.com", "password")
                })
                {
                    client.Send(message);
                }
            }
        }
    }
}
  • В этой строке появляется ошибка: enter image description here Я уже пытался разместить вызов IJob следующим образом: Кварц.IJob, но он тоже не работает.

В других .cs у меня есть JOB, но он также выдает ошибку, я объясню это ниже:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Quartz;
using Quartz.Impl;
using System.Threading.Tasks;

namespace WEB_Project.Models
{
    public class JobScheduler
    {
        public void Start(DateTime date)
        {
            IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler(); /*Error Line*/
            scheduler.Start();
            IJobDetail job = JobBuilder.Create<EmailJob>().Build();

            ITrigger trigger = TriggerBuilder.Create()
                .WithDailyTimeIntervalSchedule
                  (s =>
                     s.WithIntervalInHours(24)
                    .OnEveryDay()
                    .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(0, 0))
                  )
                .Build();

            scheduler.ScheduleJob(job, trigger);
        }
    }
}
  • В этой строке появляется ошибка: enter image description here Это ошибки, которые дает мне реализация Quartz, есть идеи, как это исправить?

1 Ответ

0 голосов
/ 25 августа 2018

Наконец-то я смог решить проблему, спасибо тем, кто помог мне и другим, большое спасибо ни за что ... Я оставляю код, чтобы каждый, у кого были те же ошибки, что и у меня, знал, как это исправить, ине путайте его со ссылкой, которая будет считаться дубликатом ...

Первый класс:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Quartz;
using Quartz.Listener;
using System.Net;
using System.Net.Mail;
using System.Threading.Tasks;

namespace WEB_Project.Models
{
    public class EmailJob : IJob 
    {
        public Task Execute(IJobExecutionContext context)
        {
            using (var message = new MailMessage("user@gmail.com", "user@live.co.uk"))
            {
                message.Subject = "Test";
                message.Body = "Test at " + DateTime.Now;
                using (SmtpClient client = new SmtpClient
                {
                    EnableSsl = true,
                    Host = "smtp.gmail.com",
                    Port = 587,
                    Credentials = new NetworkCredential("user@gmail.com", "password")
                })
                {
                    client.Send(message);
                }
            }
          return Task.CompletedTask;
        }
    }
}

Второй класс:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Quartz;
using Quartz.Impl;
using System.Net;
using System.Net.Mail;
using Quartz.Logging;
using System.Threading.Tasks;

namespace WEB_Project.Models
{
    public class JobScheduler
    {
        public static async void Start()
        {
            IScheduler scheduler = await StdSchedulerFactory.GetDefaultScheduler();
            await scheduler.Start();

            IJobDetail job = JobBuilder.Create<EmailJob>().Build();

            ITrigger trigger = TriggerBuilder.Create()
                .WithDailyTimeIntervalSchedule
                  (s =>
                     s.WithIntervalInHours(24)
                    .OnEveryDay()
                    .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(0, 0))
                  )
                .Build();

            ITrigger trigger1 = TriggerBuilder.Create()
                .WithIdentity("trigger_1", "group_1")
                .StartNow()
                .WithSimpleSchedule(x => x
                    .WithIntervalInSeconds(20)
                    .RepeatForever())
                .Build();

            await scheduler.ScheduleJob(job, trigger1);
        }
    }
}
...