بنده یک مشکل عجیب با quartz پیدا کردم
من یک schedule برای ایمیل نوشتم که بتونه ایمیل انبوه با فاصله زمانی ارسال کند
منتها من برای اینکه ارسال ایمیل شود باید لیست ایمیلها را در هر بار به job بفرستم و با هر بار فرستادن , آن ایمیل از لیست ایمیلها پاک شود .برای اینکه بتوانم لیست ایمیلها را با هر بار اجرای job حفظ کنم که متوجه شوم چه ایمیل هایی مانده است از اتریبیوت PersistJobDataAfterExecution و DisallowConcurrentExecution بالای سر job استفاده کردم .
در job گفتم اگر تعداد لیست ایمیلها به صفر رسید schedule متوقف شود
در لوکال مشکلی ندارد ولی در عملی متوجه شدم گویا مقدار لیست ایمیلها حفظ نمیشود و مجدد ایمیل زده میشود.لطفا کمک کنید
من یک schedule برای ایمیل نوشتم که بتونه ایمیل انبوه با فاصله زمانی ارسال کند
منتها من برای اینکه ارسال ایمیل شود باید لیست ایمیلها را در هر بار به job بفرستم و با هر بار فرستادن , آن ایمیل از لیست ایمیلها پاک شود .برای اینکه بتوانم لیست ایمیلها را با هر بار اجرای job حفظ کنم که متوجه شوم چه ایمیل هایی مانده است از اتریبیوت PersistJobDataAfterExecution و DisallowConcurrentExecution بالای سر job استفاده کردم .
در job گفتم اگر تعداد لیست ایمیلها به صفر رسید schedule متوقف شود
در لوکال مشکلی ندارد ولی در عملی متوجه شدم گویا مقدار لیست ایمیلها حفظ نمیشود و مجدد ایمیل زده میشود.لطفا کمک کنید
[PersistJobDataAfterExecution] [DisallowConcurrentExecution] public class SendGroupEmailJob : IJobBase { private List<MailAddress> lstMails; public void Execute(IJobExecutionContext context) { int result = 0; if (context.JobDetail.JobDataMap["UserEmailList"] != null) { lstMails = context.JobDetail.JobDataMap["UserEmailList"] as List<MailAddress>; if (lstMails.Count == 0) { context.Scheduler.UnscheduleJob(new TriggerKey(context.Trigger.Key.Name)); } else { JobDataMap map = context.JobDetail.JobDataMap; result = EmailHandler.Send(lstMails[0], map.GetString("Subject"), map.GetString("Body").Replace("[FullName]", lstMails[0].DisplayName).Replace("[Email]", lstMails[0].Address), context.JobDetail.JobDataMap["Attachment"] as List<string>, MailPriority.High, true, Encoding.UTF8, DeliveryNotificationOptions.None, map.GetString("SenderEmail"), map.GetString("SenderName"), map.GetString("BccEmail"), map.GetString("Prefix"), map.GetBoolean("IsSSL"), map.GetBoolean("IsCredential"), map.GetString("Server"), map.GetInt("Port"), map.GetInt("TimeOut"), map.GetString("PassWord")); lstMails.RemoveAt(0); } } } }