PDA

View Full Version : ارسال sms در زمان خاص



niloo17
چهارشنبه 10 مهر 1392, 19:11 عصر
سلام دوستان
من یک سایت دارم که اطلاعات کاربران در اون ذخیره شده است.
یکی از این اطلاعات تاریخ تولد کاربران است، لازم است که در روز تولد هر کاربر برای او یک پیام تبریک ارسال شود.
به نظرتون بهترین روش برای پیدا کردن زمان ارسال پیامک چیست؟

forestasphalt
چهارشنبه 10 مهر 1392, 20:01 عصر
quartz رو جستجو کن به نتایج خوبی میرسی متاسفانه الان فرصت ندارم نمونه ای براتون ضمیمه کنم

niloo17
چهارشنبه 10 مهر 1392, 23:03 عصر
ممنون از راهنماییتون
من یک کلاس برای ارسال sms


public class SmsJob : IJob
{

/// <summary>
/// Called by the <see cref="IScheduler" /> when a
/// <see cref="ITrigger" /> fires that is associated with the <see cref="IJob" />.
/// </summary>
public virtual void Execute(IJobExecutionContext context)
{

}

}


و یک Trigger که هر 1 دقیقه اجرا بشه



public virtual void Run()
{

// First we must get a reference to a scheduler
ISchedulerFactory sf = new StdSchedulerFactory();
IScheduler sched = sf.GetScheduler();


// jobs can be scheduled before sched.start() has been called

// get a "nice round" time a few seconds in the future...
DateTimeOffset startTime = DateBuilder.NextGivenSecondDate(null, 15);

// job1 will only fire once at date/time "ts"
IJobDetail job = JobBuilder.Create<SmsJob>()
.WithIdentity("job1", "group1")
.Build();

ISimpleTrigger trigger = (ISimpleTrigger)TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartAt(startTime)
.WithSimpleSchedule(x => x.WithIntervalInSeconds(60).RepeatForever())
.Build();

// schedule it to run!
DateTimeOffset? ft = sched.ScheduleJob(job, trigger);

// All of the jobs have been added to the scheduler, but none of the jobs
// will run until the scheduler has been started
sched.Start();


sched.AddJob(job, true);



sched.Shutdown(true);

}

چه زمانی باید این تابع را فراخوانی کنم. تا هر 1 دقیقه تاریخ را بررسی کنه و sms ارسال بشه!!
ممنون می شم اگه راهنماییم کنید.

omidrezav
چهارشنبه 10 مهر 1392, 23:12 عصر
با توجه به مورد کاربردی که شما مد نظر دارید فکر نمی کنم نیازی به فراخوانی 1 دقیقه یکبار باشه. یکبار در روز کافیه، مثلا سر یه ساعت مشخص!

mnvoh90
چهارشنبه 10 مهر 1392, 23:13 عصر
من ASP کار نکردم ولی واسه این مورد باید یه همچین کاری بکنید: نسبت یه نیاز آپیدیت شدن(در مورد تولد هر ۲۴ ساعت یه بار مثلا هر روز ساعت ۱۲ ظهر) اسکریپتی اجرا بشه و تمامی کاربرانی که تاریخ تولدشون امروز هست رو از دیتابیس بکشه بیرون و اس ام اس رو براشون اجرا کنه.

تا هر 1 دقیقه تاریخ را بررسی کنه
این تریگر تابعی رو فرامی خونه که تاریخ تولد کاربرا رو تو دیتابیس چک می کنه؟؟؟ اگر این طور که خیلی کار بدیه. لود سیستم بی خود و بی جهت کلی میره بالا. همون یه جاب تعریف کنید که مثلا هر روز یه بار اجرا بشه. من خودم PHP کار می کنم و اگر بخوام همچین کاری بکنم یه cronjob(میشه همون job که باید schedule کنید) تعریف می کنم که هر روز یه بار اجرا بشه

niloo17
چهارشنبه 10 مهر 1392, 23:17 عصر
ممنون از راهنماییتون
به غیر از ارسال پیامک تبریک تولد ، یک تایمر هم دارم که در زمان های خاص باید پیامک ارسال بشه واسه همین هر 1 دقیقه بررسی می کنم.