مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

mohsen_metn

عضویت از 1394/06/28

مشکل در استفاده از quartz

  • شنبه 11 شهریور 1396
  • 11:53
تشکر میکنم

سلام

من دز حال طراحی سایتی هستم که یکی از امکاماتش ارسال ایمیل در ساعت های مختلف به طور خود کار هستش. از اموزش استفاده از quartz همین سایت استفاده کردم ولی یه جا به خطا بر می خورم

using Quartz;
using System;
using System.Net;
using System.Net.Mail;

namespace sch
{
    public class EmailJob
    {
        public void Execute(IJobExecutionContext context)
        {
            using (var message = new MailMessage("mohsen_metn@yahoo.com", "mohsen_metn@yahoo.com"))
            {
                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("mohsen_metn@yahoo.com", "*****")
                })
                {
                    client.Send(message);
                }
            }
        }
    }
}

ایم کلاسی هست که job رو تعریف می کنم

using Quartz;
using Quartz.Impl;
using System;
 

namespace sch
{
    public class JobScheduler
    {
        public static void Start()
        {
            IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();
            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);
        }
    }
}

این هم کلاسی که تریگر رو تعریف میکنه

اما از  IJobDetail job = JobBuilder.Create<EmailJob>().Build(); خطای زیر رو می گیره

Error	1	The type 'sch.EmailJob' cannot be used as type parameter 'T' in the generic type or method 'Quartz.JobBuilder.Create<T>()'. There is no implicit reference conversion from 'sch.EmailJob' to 'Quartz.IJob'.	D:\PROJECT\BIPC\Quartz\sch\sch\JobScheduler.cs	15	30	sch

مشکل از کجاست و راه حل چیه؟

پاسخ های این پرسش

تعداد پاسخ ها : 7 پاسخ
کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • شنبه 11 شهریور 1396
  • 12:08

این خطا می گوید EmailJob که در متد create تعریف کرده اید یک job به حساب نمی اید و اینترفیس IJob را پیاده سازی نکرده است.

کاربر سایت

mohsen_metn

عضویت از 1394/06/28

  • شنبه 11 شهریور 1396
  • 12:12

خب من دقیقا از روی مقاله زمانبندی کار ها با استفاده از quartz همین سایت اینو پیاده سازی کردم

برای حل مشکل چه کنم؟

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • شنبه 11 شهریور 1396
  • 12:14

کلاس EmailJob باید از IJob ارث بری کند.

کاربر سایت

mohsen_metn

عضویت از 1394/06/28

  • شنبه 11 شهریور 1396
  • 12:16

مشکل برطرف شد کلاس ایمیل باید به صورت زیر پیاده سازی بشه

using Quartz;
using System;
using System.Net;
using System.Net.Mail;
 
namespace sch
{
    public class EmailJob
    {
        public void Execute(IJobExecutionContext context)
        {
            using (var message = new MailMessage("mohsen_metn@yahoo.com", "mohsen_metn@yahoo.com"))
            {
                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("mohsen_metn@yahoo.com", "*****")
                })
                {
                    client.Send(message);
                }
            }
        }
    }
}

کاربر سایت

mohsen_metn

عضویت از 1394/06/28

  • شنبه 11 شهریور 1396
  • 13:30

ر

jobrunshell.cs not found

حالا یه مشکل جدید دارم برنامه به درستی اجرا میشه ولی ایمیلی ارسال نمیشه در تریس خط به خط پس از اجرای دستور ارسال ایمیل خطای بالارو ردیافت میکنم

کاربر سایت

mohsen_metn

عضویت از 1394/06/28

  • یکشنبه 12 شهریور 1396
  • 09:27

کسی نمی تونه کمک کنه؟

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • یکشنبه 12 شهریور 1396
  • 09:42

شاید کتابخانه هایی که نصب کردید ناقص است

مجدد نصب کنید

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)