نمایش نتایج 1 تا 17 از 17

نام تاپیک: روش انجام پروسه ای که توضیح میدهم

  1. #1
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,723

    روش انجام پروسه ای که توضیح میدهم

    سلام.

    من میخوام در یه پروژه بر اساس یه تاریخ و زمان از پیش تعیین شده که در دیتابیس ذخیره شده وقتی به اون زمان رسیدم یه کاری رو انجام بدم.

    حالا میخوام بدونم به نظر شما این کار رو چطوری انجام بدم بهتره؟
    مثلا یکی از روش هایی که به ذهن خودم رسیده اینه :
    به یه تایمر یا یه Thread چک کنم اگه به اون زمان رسیده کار رو انجام بده!
    ولی به نظرم این روش زیاد جالب و بهینه نیست، دوستان لطف کنند نظرشون رو بدن تا بهترین روش رو پیدا کنم.
    با تشکر.منتظر نظرات راهگشای شما دوستان هستم.

  2. #2
    کاربر دائمی
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    تهران
    پست
    742

    نقل قول: روش انجام پروسه ای که توضیح میدهم

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

  3. #3
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,723

    نقل قول: روش انجام پروسه ای که توضیح میدهم

    منم نگفتم سخته!
    ولی این کار باید همیشه انجام بشه دیگه، درسته؟(مثلا هر یه دقیقه من نیاز دارم این کار رو بکنم، به نظر شما این بهینه هست؟!)

  4. #4
    کاربر دائمی
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    تهران
    پست
    742

    نقل قول: روش انجام پروسه ای که توضیح میدهم

    هر یک دقیقه؟!بله از نظر بهینگی به نظر من مشکلی نداره.در یک تایمر قرار بده .فقط به این نکته دقت کن که تایمر قراره هر یک دقیقه یه جدولی رو آپدیت کنه که چه حجمی اطلاعات رو قراره در اون قرار بگیره؟ اگه حجم اطلاعات مناسب باشه بهینست

  5. #5
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,723

    نقل قول: روش انجام پروسه ای که توضیح میدهم

    به هر حال ممنونم ولی نه به نظر من بهینه نیست.
    دوستان دیگه کسی نظری نداره؟

  6. #6

    نقل قول: روش انجام پروسه ای که توضیح میدهم

    سلام.یه کلاس درست کن در آن کارهای یک روز را بتونی ذخیره کنی .اگه در این روز کاری برای انجام دادن هست تایمر را به کار اندازید و کارها را بر اساس کلاسی که دارید انجام دهید.
    این کار از مراجعه به دیتابیس جلوگیری می کند.اگر هم کاری به کارهای امروز اضافه کردی آن را به کلاست اضافه کن.

  7. #7
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,723

    نقل قول: روش انجام پروسه ای که توضیح میدهم

    ممنونم دوست عزیز.
    ولی کارهای امروز رو کجا ذخیره کنم؟
    برنامه هی باز و بسته میشه اگه جایی ذخیره نشن که از بین میرن دیگه!!!
    میشه بیشتر راهنمایی کنید؟با تشکر

  8. #8

    نقل قول: روش انجام پروسه ای که توضیح میدهم

    روشی که TeacherMath فرمودن، نوعی Caching هست که برای اینطور مسایل، جهت جلوگیری از مراجعات زیاد به دیتابیس مورد استفاده قرار میگیره.

  9. #9
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,723

    نقل قول: روش انجام پروسه ای که توضیح میدهم

    نقل قول نوشته شده توسط jalalx مشاهده تاپیک
    روشی که TeacherMath فرمودن، نوعی Caching هست که برای اینطور مسایل، جهت جلوگیری از مراجعات زیاد به دیتابیس مورد استفاده قرار میگیره.
    خوب به هر حال باید یه جایی ذخیره کنیم دیگه یا نه؟
    لطف کنید بیشتر توضیح بدین.
    با تشکر.

  10. #10

    نقل قول: روش انجام پروسه ای که توضیح میدهم

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

  11. #11
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,723

    نقل قول: روش انجام پروسه ای که توضیح میدهم

    نقل قول نوشته شده توسط sarbaz_esf مشاهده تاپیک
    دوست عزیز به این نکته هم توجه کن که بر اساس تاریخ و زمانی که در برنامه ات تعیین کردی ممکنه برنامه ات در ان تاریخ و زمان در حال اجرا نباشه واین هم خودش یه مشکله
    ممنونم دوست عزیز، بابت این نکته مشکلی نیست تدبیرات لازم انجام شده.
    و فقط چگونگی انجام این امر مشکل من هست که نیاز به نظرات شما عزیزان دارم به طوریکه بهترین و بهینه ترین روش رو انجام بدم.
    از همه دوستان که جواب میدن نهایت تشکر رو دارم و از تمامی دوستان خواهش میکنم نظرات خود رو بیان کنن.
    با تشکر.

  12. #12
    کاربر دائمی آواتار arta.nasiri
    تاریخ عضویت
    آذر 1386
    محل زندگی
    Tehran
    پست
    782

    نقل قول: روش انجام پروسه ای که توضیح میدهم

    نقل قول نوشته شده توسط نیما حتمی مشاهده تاپیک
    هر یک دقیقه؟!بله از نظر بهینگی به نظر من مشکلی نداره.در یک تایمر قرار بده .فقط به این نکته دقت کن که تایمر قراره هر یک دقیقه یه جدولی رو آپدیت کنه که چه حجمی اطلاعات رو قراره در اون قرار بگیره؟ اگه حجم اطلاعات مناسب باشه بهینست
    سلام
    دوست عزیز این روشی که شما فرمودین زیادم بهینه نیست! ما باید اینم در نظر داشته باشیم که اگه برنامه ما تحت شبکه باشه و تعداد کاربران در حال استفاده از برنامه هم زیاد باشه و هر یک دقیقه یک بار به سرور درخواست ارسال بشه روزانه برنامه ما مقدر زیادی از پهنای باند رو اشکال و مصرف میکنه.

    و troski عزیز به این لینک هم یه نگاهی بکن شاید به دردت خورد
    http://www.codeproject.com/KB/cs/tsnewlib.aspx

  13. #13
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,723

    نقل قول: روش انجام پروسه ای که توضیح میدهم

    ممنونم بابت جواب.

    ولی از لینکی که گذاشتین چیزی نفهمیدم میشه یه خورده توضیح بدین.
    با تشکر

  14. #14
    کاربر دائمی آواتار arta.nasiri
    تاریخ عضویت
    آذر 1386
    محل زندگی
    Tehran
    پست
    782

    نقل قول: روش انجام پروسه ای که توضیح میدهم

    نقل قول نوشته شده توسط troski مشاهده تاپیک
    ممنونم بابت جواب.

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

    دوست عزیز من بعضی از کد ها رو توضیح میدم بقیه هم اگه مشکل داشتی بگو راهنمایی کنم

    در اینجا یک Task جدید به نام D Checker ایجاد میشه

    Task t;
    try {
    t = st.CreateTask("D checker");
    } catch (ArgumentException) {
    Console.WriteLine("Task name already exists");
    return;
    }


    این خط هم نام فایل اجرایی که قراره موقع استارت Task اجرا بشه رو میگیره به همراه پارامترهایی که واسه برنامت لازمه
    t.ApplicationName = "chkdsk.exe";
    t.Parameters = "d: /f";
    t.Comment = "Checks and fixes errors on D: drive";


    در این خط هم مشخصات یک اکانت رو میدیم که Task قراره توسط اون اکانت اجرا بشه ( همون اکانت ویندوز )
    t.SetAccountInformation(@"THEDOMAIN\TheUser", "HisPasswd");


    این خط هم میگه اگه سیستم بیشتر از 10 دقیقه هست که در حالت idle میتونی اجرا بشه
    t.IdleWaitMinutes = 10;


    به Task اجازه اجرا بیشتر از دو ساعت و نیم رو نمیده
    t.MaxRunTime = new TimeSpan(2, 30, 0);


    موقعی اجرا بشه که سیستم در حالت idle هست
    t.Priority = System.Diagnostics.ProcessPriorityClass.Idle;


    اینم تنظیم یک تاریخ مشخص برای اجرا Task میباشد
    t.Triggers.Add(new WeeklyTrigger(6, 30, DaysOfTheWeek.Sunday));


    و در آخر هم
    t.Save()
    t.Close();
    st.Dispose();

  15. #15
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,723

    نقل قول: روش انجام پروسه ای که توضیح میدهم

    ممنونم دوست عزیز.
    راستش چیز خاصی نفهمیدم، اصلا این کدها چجوری کار میکنن باید کجا بذارمشون؟!!!
    دوستان دیگه روشی ندارن؟!!!

  16. #16
    کاربر دائمی آواتار vof.ir
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    تهران
    پست
    249

    نقل قول: روش انجام پروسه ای که توضیح میدهم

    اگر شما میخواهید بر روی اطلاعاتی که روی دیتابیستون هست عملیاتی انجام دهید، و کامپیوتری که دیتابیس شما روی آن نصب هست دائم روشن می ماند می تونید از امکانات خود sql server (حدس می زنم که از sql استفاده میکنید شاید هم نه) استفاده کنید.
    دقیق یادم نیست کدام قسمتش بود. اما مطمئنم که میشه.

  17. #17
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,723

    نقل قول: روش انجام پروسه ای که توضیح میدهم

    آره با Sql کار میکنم و با اطلاعات درون جدول ها کار هم دارم.
    ولی کارای اصلی برنامه رو سی شارپ باید انجام بده.

    از همه دوستان ممنونم.
    خودم یه یه روشی رسیدم با ساتفاده از تایمر توضیح میدم، هر کدوم از دوستان که نظری برای بهینه کردنش دارن بگن:

    روش خودم با تایمر:
    در ابتدای اجرای برنامه در صبح چک میکنم اگه برای امروز کاری نباشه که تایمر فعال نمیشه ولی اگر برای امروز کاری باشه زمان آنرا میخونم و فاصله آن زمان تا الان را به میلی ثانیه بدست آورده و سپس خاصیت Interval تایمر رو برابر عدد بدست آمده میکنم. و در رویداد تیک تایمر کار مورد نظر رو انجام میدم و دویاره همین پروسه رو انجام میدم.

    حالا میخوام اگه روشی باشه همین رو بهینه تر کنم.
    هر کی نظری داره لطف کنه دریغ نکنه.
    با تشکر.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •