PDA

View Full Version : سوال: مشکل زمانبدی در سایت با کتاب خانه Quartz.dll



ehsan21
یک شنبه 16 تیر 1392, 07:42 صبح
برای ایجاد زمانبدی در سایت از کتاب خانه Quartz.dll استفاده کرده ام
به صورت لوکال مشکلی برای زمانبندی ندارم اما زمانی که آپ لود میشه کار نمی کنه
لطفا راهنمایی فرمایید
آیا تنظیم خاصی باید در سرور انجام شود؟

متشکر

ehsan21
دوشنبه 17 تیر 1392, 08:37 صبح
:افسرده: :افسرده: :افسرده:

fakhravari
پنج شنبه 20 تیر 1392, 14:24 عصر
روي سرور اشتراكي كار نميكنه.

ehsan21
سه شنبه 22 مرداد 1392, 08:53 صبح
روي سرور اشتراكي كار نميكنه.

برای حل مشکل چه راه کاری دارید ؟
من می خوام در سایت زمانبندی داشته باشم/ راه حل دیگری هست؟

fakhravari
چهارشنبه 23 مرداد 1392, 18:26 عصر
درخواست از سوي يك سايت در زمان هاي متفرقه...............

i.RB92
دوشنبه 01 مهر 1392, 15:25 عصر
درخواست از سوي يك سايت در زمان هاي متفرقه...............
میشه بیشتر توضیح بدین؟؟
اصن نفهمیدم چی گفتی!

sepide_68_91
دوشنبه 01 مهر 1392, 16:28 عصر
برای ایجاد زمانبدی در سایت از کتاب خانه Quartz.dll استفاده کرده ام
به صورت لوکال مشکلی برای زمانبندی ندارم اما زمانی که آپ لود میشه کار نمی کنه
لطفا راهنمایی فرمایید
آیا تنظیم خاصی باید در سرور انجام شود؟

متشکر

سلام
میشه این کتابخانه رو برا دانلود بذارید؟
من هر کاری کردم تو سایتش دانلود نشد
ممنون

fakhravari
دوشنبه 01 مهر 1392, 18:32 عصر
میشه بیشتر توضیح بدین؟؟
اصن نفهمیدم چی گفتی!
سايت هاي هستم كه به سايدت شما request ميزنند.
چون سرور سايت شما stop ميشه و با هر requestفعال ميشه. و فايل گلوبال متد هاش بروز ميشه

i.RB92
سه شنبه 02 مهر 1392, 07:33 صبح
سايت هاي هستم كه به سايدت شما request ميزنند.
چون سرور سايت شما stop ميشه و با هر requestفعال ميشه. و فايل گلوبال متد هاش بروز ميشه
خب این چه ارتباطی اصن به موضع این تاپیک و بحث کتاب خانه Quartz.dll داشت؟؟

i.RB92
سه شنبه 02 مهر 1392, 12:07 عصر
دوستان من قبلا اینجا (http://barnamenevis.org/showthread.php?417069-%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C-%D9%85%D8%AA%D9%88%D8%AF-%D9%87%D8%B1-24-%D8%B3%D8%A7%D8%B9%D8%AA-%DB%8C%DA%A9%D8%A8%D8%A7%D8%B1-%D9%88-%D8%AF%D8%A7%D9%86-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B3%D8%A7%DB%8C%D8%AA) یه تاپیک در این مورد زدم ولی نمیدونم چرا نمیشه اونجا پست داد دیگه
این شد که مجبور شدم اینجا پست بدم
////////
کاری که من انجام دادم به این صورت شد:
اول اومدم اون متدی که مد نظرم هست رو تو کلاس پیاده سازی کردی:


namespace QuartzTest
{
public class SendMailJob : IJob
{
public void Execute(IJobExecutionContext context)
{
SendMail();
}
public void SendMail()
{
string path = System.Web.Hosting.HostingEnvironment.MapPath("~/Data/Log.txt");
using (StreamWriter sw = new StreamWriter(path, true))
{
sw.WriteLine("پیام از طرف کلاس سند میل " + DateTime.Now.ToString());
}
}


}
}

فرض کنید متد من کارش نوشتن تو یه فایل متنیه. بعد از اون برای اینکه این متد هرشب سر یه ساعت معینی اجرا شه اومدم کدهای زیر رو تو Application_Start نوشتم:


protected void Application_Start(object sender, EventArgs e)
{
IJobDetail job = JobBuilder.Create<SendMailJob>()
.WithIdentity("job1")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.ForJob(job)
.WithIdentity("trigger1")
.StartNow()
.WithCronSchedule("0 1 0 * * ?")
.Build();
ISchedulerFactory sf = new StdSchedulerFactory();
IScheduler sc = sf.GetScheduler();
sc.ScheduleJob(job, trigger);
sc.Start();
}

این برنامه رو به صورت لوکال تست کردم و جواب داد. حالا نمیدونم بالا هم بذارم جواب میده یا نه.
متدی که باید کال شه متد مهمیه و باید پولهارو بین حسابها جابجا کنه.
به نظر شما روشی که انجام دادم درسته؟
آیا لازمه تو زمانی که این متود داره ران میشه سایت دان بشه؟
اگه جایی رو جا انداختم ممنون میشم بگید چون یه درصد این برنامه اشتباه کار کنه کلی برام مسئولیت ایجاد میکنه.

fakhravari
سه شنبه 02 مهر 1392, 16:41 عصر
رررررررربط داره:چشمک:

i.RB92
سه شنبه 02 مهر 1392, 17:06 عصر
رررررررربط داره:چشمک:
دوست عزیز خواهشا اسپم ارسال نکنید. اون چیزی که شما گفتید اصلا هیچ ارتباطی به بحث زمانبندی و این کتابخونه نداشت.
سایتها وقتی بهشون Request داده نمیشه استوپ میشن وبعد از اولین Request یه مفداری دیر لود میشن. حالا برای اینکه مدام به سمت سایت Request بیاد تا سایت استوپ نشه چندین راه وجود داره، مثلا استفاده از فیدها. منظورتون این بود دیگه. خب حالا ربطش به زمانبندی چی بود این؟؟

fakhravari
سه شنبه 02 مهر 1392, 17:34 عصر
:قهقهه: spam
انگار نيمدوني اين ابزار استوپ ميشه
اينم يكي از مشكلات ديگه.

i.RB92
سه شنبه 02 مهر 1392, 18:07 عصر
:قهقهه: spam
انگار نيمدوني اين ابزار استوپ ميشه
اينم يكي از مشكلات ديگه.
من تو خیلی از تاپیکها رد پای شما رو میبینم، متاسفانه پستهایی که میذارین اصلا بار علمی ندارن. یکی هم که بخواد بیاد یه پست درست و حسابی بذاره و جواب بده وقتی میبینه قبلا شما جواب دادی کلا بیخیال میشه و میره. مثه کاری که تو این تاپیک کردین.
به فرض که روی سرور اشتراکی جواب نده. که البته من هنوز تست نکردم ولی آقای بهروز راد که من ایشون رو خیلی قبولش دارم اینجا (http://www.dotnettips.info/post/997/%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C-%D9%88%D8%B8%D8%A7%DB%8C%D9%81-%D8%B2%D9%85%D8%A7%D9%86-%D8%A8%D9%86%D8%AF%DB%8C-%D8%B4%D8%AF%D9%87-%D8%A8%D8%A7-quartz-net-%D9%82%D8%B3%D9%85%D8%AA-%D8%A7%D9%88%D9%84) گفته کار میکنه رو هاست اشتراکی هم.
صاحب این تاپیک اومده میگه برای حل این مشکل باید چیکار کرد؟ جواب شما چی بود:
"درخواست از سوي يك سايت در زمان هاي متفرقه..............."
این یعنی چی؟؟؟؟
وقتی گفتم بیشتر توضیح بدین چی گفتین شما:
"سايت هاي هستم كه به سايدت شما request ميزنند.
چون سرور سايت شما stop ميشه و با هر requestفعال ميشه. و فايل گلوبال متد هاش بروز ميشه"
یا من حرفای شما رو نمیفهمم یا کلا هیچکس نمیفهمه!
که مطمئنم گزینه دوم درسته. چون چندین بار کاربرای این سایت تو پیغام خصوصی بمن گفتن که حرفای شمارو نباید زیاد جدی گرفت. خب ماهم جدی نمیگیریم اما مشکل این میشه که دیگه کسی تو تاپیکی که شما توش پست بذارین شرکت نمیکنه. نمونش همین تاپیک.
خواهشا یکم پستهای علمی تری بدین. جوری باشه که من تازه کار بتونم استفاده کنم از پستهاتون.

fakhravari
پنج شنبه 04 مهر 1392, 17:47 عصر
:قهقهه: جالب بود.
دوستان لطف دارن. اقاي راد هم ارادتي خدمتشون داريم اما ديگه مطالب علمي توي بخش asp نميزنند و همچنين ديگر دوستان.
http://www.dotnettips.info/post/997/%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C-%D9%88%D8%B8%D8%A7%DB%8C%D9%81-%D8%B2%D9%85%D8%A7%D9%86-%D8%A8%D9%86%D8%AF%DB%8C-%D8%B4%D8%AF%D9%87-%D8%A8%D8%A7-quartz-net-%D9%82%D8%B3%D9%85%D8%AA-%D8%A7%D9%88%D9%84
نظرات اخر سايت ببينيد
اگه خوب دقت كنيد من به سوال دوستمون خوب پاسخ دادم. دقت دقت.جملات من كلي است و كمي بايد روش فكر كنيد مثلا وقتي ميگم
سايت هاي هستم كه به سايدت شما request ميزنند.
چون سرور سايت شما stop ميشه و با هر requestفعال ميشه. و فايل گلوبال متد هاش بروز ميشه"
فايل گلوبال متد هاش بروز ميشه : يعني متد هاي شما فعال و هر كدوم كار خودشون انجام ميدن اين يعني بروز شدن

اگه ميشه ادرس مطالبي كه ميگين بار علمي نداره بزارين ببينم چي گفتم

http://barnamenevis.org/showthread.php?368138-%D8%B2%D9%85%D8%A7%D9%86%D8%A8%D9%86%D8%AF%DB%8C

forestasphalt
جمعه 05 مهر 1392, 12:34 عصر
حق با اقای فخر آوری میباشد
چون در هاست های اشتراکی هر زمان که تقاضایی به سایتی ارسال میشه اون سایت رو به سرور میاره و زمانی که درخواستی برای اون سایت وجود نداشته باشه اون سایت stop میشه و عملا نمیشه زمانبدی رو برای اون تنظیم کرد چون هاست stop شده!
در انتهای مطلب http://www.dotnettips.info/post/997/...A7%D9%88%D9%84
چند سایت معرفی شده که این سر زدن به سایت شما رو براتون انجام میده لطفا اون سایت ها رو بررسی نمایید و در صورت جواب نگرفتن مشکل خود را باز اعلام بفرمایید

i.RB92
شنبه 06 مهر 1392, 08:18 صبح
حق با اقای فخر آوری میباشد
چون در هاست های اشتراکی هر زمان که تقاضایی به سایتی ارسال میشه اون سایت رو به سرور میاره و زمانی که درخواستی برای اون سایت وجود نداشته باشه اون سایت stop میشه و عملا نمیشه زمانبدی رو برای اون تنظیم کرد چون هاست stop شده!
در انتهای مطلب http://www.dotnettips.info/post/997/...A7%D9%88%D9%84
چند سایت معرفی شده که این سر زدن به سایت شما رو براتون انجام میده لطفا اون سایت ها رو بررسی نمایید و در صورت جواب نگرفتن مشکل خود را باز اعلام بفرمایید
ممنون از جواب
من تازه فهمیدم منظور ایشون چی بود!
امکانش هست متودی نوشته شه و اینکار رو انجام بده؟
منظورم اینه که هر چند دقیقه یکبار به سایت Request بزنه که همیشه تو حافظه باشه تا بقیه Job ها هم بتونن اجرا شن.
تو لینکی که دادین اشاره به ثبت فید در فید برنر کردن. با این کار دیگه این مشکل حل میشه در هر حال؟؟ من فعلا امکان تست ندارم وگرنه حتما تست میکردم. میخوام بدونم کسی از دوستان این تست رو تاحالا انجام داده یا نه؟

dabirsiaghi
شنبه 06 مهر 1392, 09:17 صبح
بنده یک مشکل عجیب با quartz پیدا کردم
من یک 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);

}


}

}
}

forestasphalt
شنبه 06 مهر 1392, 13:06 عصر
نیازی به نوشتن تابع نیست فیدبرنر کافیست