PDA

View Full Version : حرفه ای: انجام یکسری فعالیت های اتوماتیک در نرم افزار تحت شبکه



رامین مرادی
یک شنبه 02 دی 1397, 12:05 عصر
سلام دوستان وقت بخیر. مایه سیستمی داریم که تحت شبکه هست و کاربران با رمز و نام کاربری اختصاصی به اون وارد میشن. خب حالا ما یه سری کار و روال روزانه داریم که هر روز اونا باید به صورت اتوماتیک ایجاد بشن. مثلا هر روز باید یه جدولی از دیتابیس یک بار خونده بشه و اطلاعاتی از اون به ایمیلی ارسال بشه. :متفکر:
انجام این روال به صورت دستی مشکلی نیست. ولی میخوام به صورت اتوماتیک باشه. مشکلی که دارم اینه اگه کاربر محور تعریف کنم ممکنه اون کاربر اون روز نیومده باشه. اگه سیستم محور باشه (آی پی)ممکنه اون سیستم اون روز روشن نشده باشه یا کارت شبکش عوض شده باشه. ممنون میشم راهنمایی کنید و پیشنهاداتتون رو برام بگید. ممنون:لبخندساده:

hamid_hr
یک شنبه 02 دی 1397, 15:13 عصر
اگر سرور Sql server هست باید job تعریف کنید که بصورت روزانه کارهای شما رو در یک ساعت خاص انجام بده

رامین مرادی
دوشنبه 03 دی 1397, 13:15 عصر
اگر سرور Sql server هست باید job تعریف کنید که بصورت روزانه کارهای شما رو در یک ساعت خاص انجام بده

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

Mahmoud Zaad
دوشنبه 03 دی 1397, 14:08 عصر
سلام
من دقیق متوجه نشدم این کارها چطور انجام میشن یعنی کاربر کِی و چطوری کارها رو انجام میده ولی برای رفع مشکلی که گفتید اگه کاربر اون روز نیومده باشه، میشه چند کاربر تعریف کرد به همراه اولویت، حالا اگه کاربری نیومده بود بعدی انجام بده و اگه اونم نیومده بود بعدیش و الی آخر. حالا برای اینکه متوجه بشیم کاربر اومده یا نه، میشه یه ساعت خاص تعریف کرد که مثلا اگه تا ساعت 9 کاربر اول کار رو انجام نداد به یه روشی به دومی اطلاع بدیم و اگه توی یک بازه زمانی اون هم انجام نداد به بعدی اطلاع بدیم و ...

hamid_hr
دوشنبه 03 دی 1397, 14:17 عصر
کارها اگه ارسال اس ام اس یا ایمیل هست میتونین با sql server هندل کنید.
اگر کاری دارید که اصلا نمیشه، توی ویندوز یک scheduler تعریف کنید که بیاد براتون این کار رو انجام بده. باهاش میتونین ایمیل ارسال کنید یا یه نرم افزار رو اجرا کنید.

محمد رضا فاتحی
چهارشنبه 05 دی 1397, 06:00 صبح
شما می تونید یه سرویس یا یه نرم افزار چانبی بنویسید و تو سرورتون اجرا کنبد و چون سروتون مطمئنا خاموش نمیشه بدون تاخیر کارتون انجام می شه

رامین مرادی
پنج شنبه 06 دی 1397, 10:21 صبح
سلام
من دقیق متوجه نشدم این کارها چطور انجام میشن یعنی کاربر کِی و چطوری کارها رو انجام میده ولی برای رفع مشکلی که گفتید اگه کاربر اون روز نیومده باشه، میشه چند کاربر تعریف کرد به همراه اولویت، حالا اگه کاربری نیومده بود بعدی انجام بده و اگه اونم نیومده بود بعدیش و الی آخر. حالا برای اینکه متوجه بشیم کاربر اومده یا نه، میشه یه ساعت خاص تعریف کرد که مثلا اگه تا ساعت 9 کاربر اول کار رو انجام نداد به یه روشی به دومی اطلاع بدیم و اگه توی یک بازه زمانی اون هم انجام نداد به بعدی اطلاع بدیم و ...
مدیریت اینکار مسلزم دقت زیادیه. وباید مراقب بود اشتباهی رخ نده و امکان آزمون و خطا هم نیست. ممنون بابت نظر مفیدتون:لبخندساده:

رامین مرادی
پنج شنبه 06 دی 1397, 10:47 صبح
کارها اگه ارسال اس ام اس یا ایمیل هست میتونین با sql server هندل کنید.
اگر کاری دارید که اصلا نمیشه، توی ویندوز یک scheduler تعریف کنید که بیاد براتون این کار رو انجام بده. باهاش میتونین ایمیل ارسال کنید یا یه نرم افزار رو اجرا کنید.

من ایمیل رو مثال زدم. در کل ماهیت کار یه چیز دیگه س که از عهده ویندوز و اس کیو ال برنمیاد و باید کد نویسی بشه برای همین مد نظر همون سی شارپ هست. روال کار به این صورته که برنامه وقتی اجرا میشه باید بره از دیتابیس یه اطلاعاتی رو بخونه. که ممکنه یه سطر اطلاعات باشه ممکنه هم 10 سطر باشه. به تعداد همون ده سطر یک فایل ورد رو ایجاد کنه و یه سری متنهای داخل ورد رو تغییر بده و نتیجه رو تو یه جدول دیگه ذخیره کنه . همچنین اون فایل هارو هم تو یه مسیر خاصی کپی کنه. برای همین باید کد نویسی بشه . که در حال حاضر اینکار انجام شده. فقط مشکل زمانبندی برای اجرا هروزه این کد هست.

رامین مرادی
پنج شنبه 06 دی 1397, 10:49 صبح
شما می تونید یه سرویس یا یه نرم افزار چانبی بنویسید و تو سرورتون اجرا کنبد و چون سروتون مطمئنا خاموش نمیشه بدون تاخیر کارتون انجام می شه

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

مهدی کرامتی
پنج شنبه 06 دی 1397, 11:11 صبح
فقط مشکل زمانبندی برای اجرا هروزه این کد هست.
برای اجرا در هر روز سر یک تایم مشخص دو راه دارید:

تعریف برنامه به عنوان یکی از تسک های ویندوز در سرویس Sheduler
استفاده از یک سرویس زمان بندی داخل کد مانند کتابخانه Quartz


چون بعدا به هر دلیلی ممکنه آی پی یا رمز دیتابیس تغییر کنه و اگه فراموش کنیم رو برنامه دوم هم تغییرات کانکشن رو اعمال کنیم کلی دردسر میشه.
اگر می خواهید از SQL Server استفاده کنید، اما درگیر جزئیات احراز هویت نشوید می توانید یک کاربر مخصوص در سرور تعریف کنید، و اجرای برنامه و سرویس را تحت آن یوزر انجام دهید، همچنین در SQL Server به همان یوزر دسترسی به دیتابیس بدهید تا بدون نیاز به نام کاربر/کلمه عبور بتواند به دیتابیس متصل شود.

رامین مرادی
پنج شنبه 06 دی 1397, 11:34 صبح
برای اجرا در هر روز سر یک تایم مشخص دو راه دارید:

تعریف برنامه به عنوان یکی از تسک های ویندوز در سرویس Sheduler
استفاده از یک سرویس زمان بندی داخل کد مانند کتابخانه Quartz


اگر می خواهید از SQL Server استفاده کنید، اما درگیر جزئیات احراز هویت نشوید می توانید یک کاربر مخصوص در سرور تعریف کنید، و اجرای برنامه و سرویس را تحت آن یوزر انجام دهید، همچنین در SQL Server به همان یوزر دسترسی به دیتابیس بدهید تا بدون نیاز به نام کاربر/کلمه عبور بتواند به دیتابیس متصل شود.

ممنون استاد عزیز که تو این تایپیک شرکت کردید. ممنون این پیشنهاد رو هم حتما در نظر میگیرم. :لبخندساده: