ورود

View Full Version : چک کردن پیامک دریافتی هر چند دقیقه یک بار



mahmoud99
سه شنبه 04 مهر 1391, 13:54 عصر
با سلام

یک برنامه نوشتم که سیستم نوبت دهی را با استفاده از پیامک(با استفاده از وب سرویس) پیاده سازی میکنه، دریافت وارسال را انجام دادم ،اما یک مشکل دارم ، می خوام هر چند دقیقه یک بار چک کنم که پیامک جدیدی اومده که نوبت دهی انجام بشه.
با توجه به اینکه پروژه وبسایتی(asp.net) هستش چطور این کار بکنم.در نظر بگیرید مثلا ساعت 2 صبح بشه نوبت داد.اصلا همچین چیزی قابل اجراست ؟

با تشکر فراوان

AmirGhasemi
سه شنبه 04 مهر 1391, 13:58 عصر
سلام قابل اجرا بودن كه حتما هست! از اين علم هيچ چيزي بعيد نيست
راه هاي مختلفي براي چك كردن اين مورد هست!
اما من معمولا از اين راه استفاده مي كنم كه:
در يك بازه زماني كوتاه مثلا هر يك دقيقه يك بار تعداد ركوردهاي جدول را مي گيرم و تعداد آن را با بازه زماني قبلي چك مي كنم اگر تعدادش بيشتر بود يعني ركورد جديد به جدول اضافه شده!
حالا اين ركوردهاي جديد را در يك جدول ديگر كه براي نوبت دهي است مي تواني اضافه كني!

mahmoud99
سه شنبه 04 مهر 1391, 14:29 عصر
منظورتون اینه که با یک حلقه لوپ توی پیج لود اینکار بکنم ،اگه این جوری هست زمانی که سایت بالا نیست چی میشه؟

AmirGhasemi
چهارشنبه 05 مهر 1391, 17:13 عصر
سلام
نه منظور من لود پيچ نيست
مي تواني با استفاده از تايمر يا ترد ها اين كار را انجام دهي!
در ضمن منظورت از اينكه سايت بالا نيست چيه؟؟؟ اگه منظورت اينه كه سرور بخوابه كه خوب اصلا پيامكي هم نمي توني دريافت كني و ارسال كني و امثالهم!!!!

majid_vb_2008
چهارشنبه 05 مهر 1391, 19:02 عصر
سلام دوست من
اگر سیستم پیامکی که دارین قابلیت ارسال به url داشته باشه می تونید ازش استفاده کنید و بعد در لود اون صفحه ای که بهش آدرس دادین کارایی که می خواین انجام بدین مثلا توی بانک ذخیره کنید یا هر کار دیگه ای اینجوری نیازی به وب سرویس هم نیست

mahmoud99
پنج شنبه 06 مهر 1391, 10:24 صبح
با سلام خدمت دوستان

در ضمن منظورت از اينكه سايت بالا نيست چيه؟؟؟ اگه منظورت اينه كه سرور بخوابه كه خوب اصلا پيامكي هم نمي توني دريافت كني و ارسال كني و امثالهم!!!!منظورم این بود که اگر سایت لود باشه می شه هر چند دقیقه یک بار این کار کرد اما اگر سایت لود نباشه مثلا ساعت 4 بعد ظهر که کسی سایت را لود نکرده (منظور مدیرسایت که از ساعت مثلا 8 صبح تا 4 بعدظهر کار می کند)
از این وقت به بعد اگر پیامی رسید می شه کاری کرد که پاسخ پیام را دقایقی بعد برای فرستنده فرستاد. مثلا از وب سروس خاصی استفاده کنیم یا چیزی دیگه ای

با تشکر

a.ameri
شنبه 22 مهر 1391, 10:51 صبح
با سلام
اگر پیامک شما از طریقurl برای شما ارسال بشه اطلاعات پیامک در url موجود است و در رویداد page load می توانید این اطلاعات را دریافت کرده و سپس عملیات مورد نظر خودتون را انجام داده و پاسخ را ارسال کنید

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

استفاده از وب سرویس فکر نکنم مناسب این کار باشد

mohsen musavi
شنبه 22 مهر 1391, 11:51 صبح
دوست عزیز میتونی از Quartz.net (http://quartznet.sourceforge.net/) استفاده کنی.
مزایا:
1-اجرای کارهای مختلف(Job)
2- اختصاص زمانبندی های گوناگون برای کارهای شما(Trigger)
3-تمامی کارها در سیستم نیاز به باز شدن صفحه و غیره ندارند و به صورت اتوماتیک در زمانهای اختصاص یافته انجام میشوند.

منابع فارسی:
http://www.google.com/search?q=quartz.net&hl=fa&site=webhp&prmd=imvns&source=lnt&tbs=lr:lang_1fa&lr=lang_fa&sa=X&ei=kyp5ULsF04KFB8HNgKAE&ved=0CBYQpwUoAQ
منابع لاتین:
http://stackoverflow.com/questions/tagged/quartz.net

fakhravari
شنبه 22 مهر 1391, 12:36 عصر
دوست عزیز میتونی از Quartz.net (http://quartznet.sourceforge.net/) استفاده کنی.
مزایا:
1-اجرای کارهای مختلف(Job)
2- اختصاص زمانبندی های گوناگون برای کارهای شما(Trigger)
3-تمامی کارها در سیستم نیاز به باز شدن صفحه و غیره ندارند و به صورت اتوماتیک در زمانهای اختصاص یافته انجام میشوند.

منابع فارسی:
http://www.google.com/search?q=quartz.net&hl=fa&site=webhp&prmd=imvns&source=lnt&tbs=lr:lang_1fa&lr=lang_fa&sa=X&ei=kyp5ULsF04KFB8HNgKAE&ved=0CBYQpwUoAQ
منابع لاتین:
http://stackoverflow.com/questions/tagged/quartz.net

با سلام
اگر ممکن در قالب یه پروژه توضیح دهید.

mohsen musavi
شنبه 22 مهر 1391, 16:27 عصر
1- ابتدا از طریق NuGet این پیکج را نصب کن.
2- پیاده سازی اینترفیس IJob

Public Class Job1
Implements IJob

Public Sub Execute(context As IJobExecutionContext) Implements IJob.Execute
کدی که میخواهید در فواصل زمانی اجرا شود
End Sub
End Class
3- پیاده سازی زمانبند مربوط به کار

زمان شرع trigger
Dim startTime = DateBuilder.FutureDate(1, IntervalUnit.Second)
ایجاد یک job
Dim job As IJobDetail = JobBuilder.Create(Of Job1)().WithIdentity("نام کار").Build()
ایجاد یک trigger برای job که هر 24 ساعت یک بار برای همیشه کار میکنه
TriggerBuilder.Create().ForJob(job).WithIdentity("نام زمانبند").WithDescription("توضیح زمانیند").StartAt(startTime).WithSimpleSchedule(Function(x ) x.WithIntervalInHours(24).RepeatForever).Build()
Dim scheduleManager = New StdSchedulerFactory().GetScheduler()
scheduleManager.ScheduleJob(job, trigger)
scheduleManager.Start()

و در نهایت در Application_Start این متد را call کنید.
البته برای راحتی کار میتوان یک کلاس برای مدیریت کارها و زمانبندی مربوط به آنها انجام داد.در نظر داشته باشید که این پکیج بسیار کامله و در این مثال بصورت محدود از امکانات این پکیج استفاده شده.

mahmoud99
دوشنبه 24 مهر 1391, 09:54 صبح
با سلام خدمت دوستان

در این آدرس توضیحات لازم نسبت به چگونگی انجام این کار داده شده است.

http://barnamenevis.org/showthread.php?282099

fakhravari
دوشنبه 24 مهر 1391, 10:41 صبح
با سلام
اگر ممکن یه نمونه سمپل بزارید چون من همون تیکه کلاس درست کردم اما حطا داشت.
در مورد اون تاپیک Threading هم اقای سالاری یه نمونه dll داره.
http://barnamenevis.org/showthread.php?86446-WebTaskScheduler-%D8%A7%D9%86%D8%AC%D8%A7%D9%85-%DA%A9%D8%A7%D8%B1%D9%87%D8%A7-%D8%AF%D8%B1-%D8%B2%D9%85%D8%A7%D9%86-%D9%85%D8%B4%D8%AE%D8%B5-%28%D8%AE%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%88-...%29&highlight=%D8%B2%D9%85%D8%A7%D9%86%D8%A8%D9%86%D8% AF%DB%8C+%D8%A7%D9%86%D8%AC%D8%A7%D9%85+%D8%B9%D9% 85%D9%84%DB%8C%D8%A7%D8%AA+%D8%AF%D8%B1+%D9%88%D8% A8