PDA

View Full Version : سوال: ذخیره اطلاعات قبل از خاموش شدن کامپیوتر



m0hammad_01
پنج شنبه 27 تیر 1392, 19:11 عصر
با سلام
قبلا جستجو کردم اما مطلب قابل توجهی پیدا نکردم

دوستان من در حال توسعه نرم افزاری هستم که در هر لحظه اطلاعات درونش در حال تغییر هست.مایل هستم این امکان رو داشته باشه که قبل از خروج نا متعارف (مثلا رفتن برق یا Restart شدن کامپیوتر) اطلاعات ذخیره شه و بعد از اجرای دوباره نرم افزار، اون اطلاعات قابل برگشت باشه به نرم افزار.
یه مثال می زنم:
مثلا برنامه مدیریت کافی نت ها، که در هر لحظه زمان هر سیستم در حال محاسبه هست، اگه برق بره یا به هر دلیلی از برنامه خارج بشیم، اطلاعات رو جایی ذخیره کرده و بعد از اجرای دوباره برنامه، نرم افزار زمان هر سیستم رو دقیقا تا لحظه قبل از خروج از برنامه دوباره نشو میده.


میخواستم لطف کنید و اگه راه حل مناسبی به ذهنتون میرسه یا قبلا جایی دیدین یا تجربه کردین رو در اختیار من و بقیه دوستان قرار بدین.

با سپاس فراوان

sinaone1
پنج شنبه 27 تیر 1392, 20:13 عصر
من همون کافینتی که مثال زدی رو می گم
خیلی سادست
1 : یوزر اد میشه و شما در دیتابیس Temp خودت یک ID برای اون ایجاد می کنی. ( دیتابیست یک فیلد ID داره و یک فیلد UserTotalTime برای نگهداری زمانش هر کاربر
2 : شما هر یک ثانیه یک بار شروع میکنی به فیلد مثلا UserTotalTime در دیتابیست یکی اضافه می کنی ( معنیش اینه که یک ثانیه اضافه شد )
3 : حالا فرض کنیم برق رفت ، خوب بره هر موقع که اومد تعداد ثانیه هایی که برق بوده ، توی دیتابیس هست دیگه ، کافیه تبدیلش کنی

m0hammad_01
جمعه 28 تیر 1392, 16:13 عصر
خیلی ممنون از جوابی که دادین دوست عزیز :لبخندساده:
خب راه حل اولیه ای که تو ذهنم هست اینه که یه thread برای برنامم بسازم که مثلا در هر ثانیه بیاد اطلاعات مختلفم رو (مثلا فکر کنین همون زمان هر سیستم در مثال کافی نت) از برنامه بگیره و تو دیتا بیس ذخیره کنه.
اما می خوام بدونم اینکه یه thread بیاد هر ثانیه اجرا شه و بخواد به پایگاه دادم وصل شه و اطلاعات را update کنه، سر بار زیادی واسه برنامم، DBMS و در کل سیستم ایجاد نمیکنه؟؟؟

دوستان اگه نظری دارن یا جایی با مورد مشابهی برخورد کردن کمک کنن.
ممنون

youngold
شنبه 29 تیر 1392, 01:07 صبح
در حد یک ذخیره سازی در دیتابیس در هر یک ثانیه در یک سیستم متوسط (حتی ضعیف) به هیچ وجه اُفت پرفرمنس محسوسی نخواهید داشت
در ضمن کانکشن دیتابیستون رو هر بار در ثانیه open close نکنید