View Full Version : سوال: یک web application طولانی( زمان)
khadem1386
شنبه 25 مهر 1388, 23:17 عصر
سلام:
من با یک شرکت مجبوم که تبادلات xml داشته باشم بوسیله asp
این تبادلات ممکنه که خیلی طول بکشه مثلا ممکنه که یک page من بخواد حدود 5 دقیقه با اون شرکت در ارتباط باشه.
البته من چندین و چند client دارم که ممکنه هر کدام بخواند از این برنامه استفاده کنند و این تبادلات را انجام بدم.
تنها چیزی که می دونم اینکه
Server.ScriptTimeout =1000
را تنظیم کردم.
اصولا این چقدر محدودیت داره و تا کی کار می کنه
و اگر مثلا 20 یا 50 client داشته باشم در یک لحظه داشته باشم چی ؟
آیا سرعت اونها هم کم می شه؟
آیا ممکنه صدای admin سرور در بیاد.
برنامه ی من به این صورته که بوسیله یک xml یک لیست را دریافت می کنه که حدود 500 تا آیتم داره و بعد از اون لیست استفاده می کنه توی یک lloop بعد برای هر آیتم همه دوباره باید تبادلات xml ی بر قرار کنه مثلا یک چیزی به آیتم اضافه کنه یا یک جمله ای را توی آیتم سرچ کنه
بعد دوباره منتن جدید را بوسیله xml ارسال کنه
محدودیت ها ی حجمی و سرعتی در چیه
چه جوری این برنامه ها را بنوعی سبکتر کرد؟
مرسی
kashaneh
یک شنبه 26 مهر 1388, 20:15 عصر
دوست عزیز تنظیم تایم آوت اسکریپت روی زمان طولانی، روی کارآیی کل سرور تاثیر خواهد داشت و نه تنها صدا که ممکن است اشک ادمین رو هم در آورد!!:چشمک:
اهمیت این موضوع در حد بسیار زیادی است... به عنوان پیشنهاد اگر توانایی دستکاری در کامپننت های سرور رو دارید و اصولا سرور کامل در اختیار شماست، می توانید از کامپننت های کار با xml به جای استفاده از MSXML بهره ببرید.. برای این مورد می توانید مورد ASP XML Parser را مورد جستجو قرار دهید... در ضمن در سایت aspin.com هم چند مورد خوب می توانید پیدا کنید...
موفق باشی
khadem1386
سه شنبه 28 مهر 1388, 11:44 صبح
من یک سرچی انجام دادم :
گوگل همش به سمت کمپانی Chilkat می فرسته آیا شما تا بحال از این
component شرکت استفاده کرده اید؟
خود شما یک component خوب استفاده کردی
این کمپانی پولی و فکر می کنم که free version هایش دست آخر بعد از این که کلی برنامه را عوض کردی و ذحمت کشیدی متوجه می شی که فلان قابلیت و فلان عمل کردش کار نمی کنه.
شما خودتون چیز سراغ ندارید.
در ضمن بسیاری از Parserها برای کلاینت و بصورت جاوا سکریپت نوشته شده
در صورتی که من با هزار زحمت خودم نشستم و برنامه را بصورت vb در آورده ام تا دقیقا اونی باشه می خواستم حالا اگر کامپاننت خودم را عوض کنم همه برنامه باید بر اساس آبجکت جدید نوشته به شه هر چند اگر یکی دو sample وی بی باشه می شه از فهمید ولی همونطور که گفتم بسیاری از کد ها به زبان جاوا هستش.
kashaneh
سه شنبه 28 مهر 1388, 13:03 عصر
نه دوست عزیز... هنوز موردی پیش نیومده اما ظاهرا این کامپننت رایگانه و بعید به نظر میرسه که قابلیت هاش محدود شد باشن... فکر کنم ارزش یکبار تست و امتحان کردن رو داشته باشه... اگه تست کردی نتیجشو اینجا به اطلاع ما هم برسون... موفق باشی
khadem1386
سه شنبه 28 مهر 1388, 13:18 عصر
یک چیز دیگه وقتی که یک سرور با یک سرور ارتباطی از نوع xml برقرار می کنه و این ارتباط حدود 5 دقیقه طول می کشه دلیل نداره که تمام این 5 دقیقه را cpu سرور من در گیر باشه
شاید سرود مقصد خیلی طول می ده تا به یک request پاسخ بده. خوب server طرف ما هم صبر می کنه نه اینکه cpu اش درگیر باشه.
خوب اگر من یک برنامه xml ی داشته باشم که مثلا 500 تا request را باید بفرسته و برای در یافت جواب هر request مجبور باشه نیم ثانیه صبر کنه خوب معلومه که خیلی طول می کشه.
ولی cpu سرور طرف من خیلی نباید درگیر باشه.
از طرف دیگه اگر من کامپاننت خودم را عوض کنم دیگه توی سرعت این قسمت قضیه اثری نخواهد گذاشت چون delay مربوط به سرور مقصد است که خیلی هم سرش شلوغه
ی
یعنی احتمالا کامپاننت جدید توی سرعت سرچ داخل xml اثر می گذاره نه سرعت ارسال request یا response . نه؟
نکته ای دیگری که می خواهم بیان کنم اینه که من هر چه فکر می کنم چطوری بشه اگوریتم خودم را به چند بخش تبدیل کنم نمی دونم و روی چند پیج پیاده کنم نمی شه
مثلا چطوری میشه همه را از یک page در آورد. چون من به هر حال یک array دارم و این array حدود 500 تا شماره آیتم را توی خودش داره حالا چجوری بشه یک page ا 500 بار یک page دیگر را صدا بزنه. ولی خوب من همه توابع خودم را داخل یک Page بصورت include در آوردم و بوسیله لوپ توابع را مرتبا صدا می زنم.
اگر در مورد الگوریتم هم پیشنهادی داشته باشید بد نیست.
باز هم مرسی
mehdi.mousavi
سه شنبه 28 مهر 1388, 13:33 عصر
سلام:
من با یک شرکت مجبوم که تبادلات xml داشته باشم بوسیله asp این تبادلات ممکنه که خیلی طول بکشه مثلا ممکنه که یک page من بخواد حدود 5 دقیقه با اون شرکت در ارتباط باشه.
مرسی
سلام.
چنین سناریوهایی رو هرگز در ASP پیاده سازی نمی کنن... فرض کنید، شما درخواستی از یک وب سرور دارید. این درخواست رو در قالب یه کلیک روی فلان دکمه از صفحه ASP به سرور اطلاع میدید. اینجا، کار صفحه ASP باید تموم شده در نظر گرفته بشه نه اینکه 5 دقیقا معطل بمونه تا پاسخ این درخواست به کاربر برگردونده بشه...
در واقع صفحه ASP میتونه این درخواست رو به MSMQ یا هر bus دیگه ای از پیامها ارسال کنه و NT Service دیگه ای که وظیفه پردازش این صف رو بعهده داره، بسته به سیاستهای اجرایی، درخواستها رو پردازش کنه و نتایج رو در یک یانک یا صف دیگه ای قرار بده.
کاربر، بعد از چند دقیقه، میتونه به صفحه "مشاهده وضعیت" اجرا شده در ASP برگرده و وضعیت درخواستی رو که مثلا 5 دقیقه پیش از سیستم داشت رو مشاهده کنه. این وضعیت میتونه Pending، Completed، Canceled یا هر چیز دیگه ای باشه...
به این ترتیب، خود اون NT Service میتونه با NT Service ها و Resource های دیگه مرتبط باشه و پاسخ درخواست Client رو بمراتب برازنده تر آماده کنه. اینطور Resource های ASP و IIS هم برای گرفتن درخواست بعدی آزاد هستن و بار بسیار بسیار کمی روی سرور گذاشته میشه.
موفق باشید.
khadem1386
سه شنبه 28 مهر 1388, 18:28 عصر
استفاده از MSMQ یا NT Service چه اطلاعاتی لازم داره
آیا باید باز هم زبان برنامه نویسی جدیدی را بلد باشم
یا اینکه برنامه vbscript را می شه روی NT Service پیاده کرد؟
من راستش با شما موافق هستم که این درست نیست که کاربر 5 دقیقه پشت یک page معطل بمونه و بهتره که همه واکنش ها بصورت
Pending، Completed، Canceled هم درک می کنم و توی گوگل هم یک همچین چیزهایی هم برای مدیریت add کردن یک لیست توی webdevelopers داره
ولی این را نمی دونم چیه :
در واقع صفحه ASP میتونه این درخواست رو به MSMQ یا هر bus دیگه ای از پیامها ارسال کنه و NT Service دیگه ای که وظیفه پردازش این صف رو بعهده داره، بسته به سیاستهای اجرایی، درخواستها رو پردازش کنه
و چه زبانی باید استفاده کنم که ترجیح می دم vbscript باشه
به هر حال از شما متشکرم
mehdi.mousavi
چهارشنبه 29 مهر 1388, 11:56 صبح
استفاده از MSMQ یا NT Service چه اطلاعاتی لازم داره
آیا باید باز هم زبان برنامه نویسی جدیدی را بلد باشم یا اینکه برنامه vbscript را می شه روی NT Service پیاده کرد؟
سلام.
برای استفاده از MSMQ ابتدا باید با ساز و کار اون آشنا بشید که MSDN (http://msdn.microsoft.com/en-us/library/ms711472%28VS.85%29.aspx) بهتون کمک می کنه تا اطلاعات خوبی در این مورد کسب کنید. برای استفاده از MSMQ میتونید از C، C++ (یا زبانهای دیگه) و حتی VBScript (http://msdn.microsoft.com/en-us/library/ms703952%28VS.85%29.aspx) استفاده کنید. البته آشنایی با COM در صورت انتخاب VBScript یک امتیاز محسوب میشه.
برای نوشتن NT Service دیگه نمیتونید کارتون رو با VBScript پیش ببرید. اینکارو می تونید با دو جین زبان و Framework ای که وجود داره انجام بدید که البته، VBScript جزء اونها نیست.
ولی این را نمی دونم چیه :
در واقع صفحه ASP میتونه این درخواست رو به MSMQ یا هر bus دیگه ای از پیامها ارسال کنه و NT Service دیگه ای که وظیفه پردازش این صف رو بعهده داره، بسته به سیاستهای اجرایی، درخواستها رو پردازش کنه
و چه زبانی باید استفاده کنم که ترجیح می دم vbscript باشه به هر حال از شما متشکرم
ببینید. من تا کل ماجرا رو ندونم نمیتونم بهتون توصیه کنم که از MSMQ استفاده کنید یا یه Custom Bus درست کنید یا ... این بخش طراحی ماجراست که بدون داشتن اطلاعات کافی در مورد شرایط پروژه نمیشه در موردش اظهار نظر کرد.
شاید شما بتونید با استفاده از SQL Server Agent و نوشتن چند تا VBScript پروژه رو به نحو احسن پیاده سازی کنید. شاید نیاز به نوشتن یک Custom Bus داشته باشید و شاید بتونید با نوشتن و Schedule کردن یک COM+ Component کارتون رو انجام بدید. اینکه چه راهکاری رو انتخاب می کنید، به پارامترهای زیادی بستگی داره...
اگر من از MSMQ اسم بردم، منظورم این نبود که حتما اینکارو انجام بدید. شاید شرایط اجرایی شما، اصلا چنین مکانیزمی رو پذیرفته شده ندونه و با انواع و اقسام محدودیتها مواجه باشه.
موفق باشید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.