ورود

View Full Version : مبتدی: سرعت پاسخدهي وب سرويس



h_mohamadi
شنبه 25 مرداد 1393, 11:31 صبح
با سلام خدمت دوستان
برنامه اي با دلفي7 نوشتم كه از طريق کامپوننت IdHttp با پنل پيامك ارتباط برقرار مي كند و عمليات ارسال و دريافت پيامك رو انجام مي دهد براي اينكه برنامه ام در مدت پاسخدهي هنگ نكند از ترد هم استفاده مي كنم
مشكل من اين است كه در بعضي مواقع مخصوصا ساعت مياني روز سرعت پاسخدهي وب سرويس به متدهاي درخواستي فوق العاده پايين مي ياد و گاهي تا چند دقيقه هم طول مي كشد در صورتي كه اگر پنل پيامك رو از سايت پيامك باز كنم و عملياتي از طريق سايت و به صورت دستي انجام بدم سرعت خيلي بيشتر است البته مي دونم مسلما استفاده از پنل به صورت دستي، به دليل نحوه پياده سازي و استفاده از بستر اينترنت سرعت بالاتري داره ولي باز هم چون در زمينه وب سرويس مبتدي هستم گفتم شايد مواردي بوده كه من در مورد اون اطلاعاتي نداشته باشم و اساتيد لطف كرده و من رو راهنمايي كنند

آيا راه حلي براي بالابردن سرعت پاسخدهي وجود دارد؟؟؟؟؟؟
منظورم تغيير در تنظيمات كامپوننت IdHttp يا تنظيمات برنامه است

BORHAN TEC
شنبه 25 مرداد 1393, 11:38 صبح
با سلام،
به جای استفاده دستی از IdHttp از روشی که در این ویدئو توضیح داده ام استفاده کنید و ببینید مشکل حل میشه یا نه؟
لینک ویدئو:
http://www.irstu.com/?p=3461

h_mohamadi
یک شنبه 26 مرداد 1393, 10:58 صبح
با سلام،
به جای استفاده دستی از IdHttp از روشی که در این ویدئو توضیح داده ام استفاده کنید و ببینید مشکل حل میشه یا نه؟
لینک ویدئو:
http://www.irstu.com/?p=3461

ممنون تجربه خوبي بود از طريق آموزشتون تونستم WSDL رو به برنامه ام Import كنم و يك يونيت جديد به برنامه ام اضافه شد و البته دفعه اول كه برنامه رو كامپايل كردم در يكي از فانكشن هايي كه ساخته بود ايرور 'Identifier redeclared: 'recId رو مي داد



procedure SendSms(const username: WideString; const password: WideString; const to_: ArrayOfString; const from: WideString; const text: WideString; const isflash: Boolean; const udh: WideString; const recId: ArrayOfLong; const status: TByteDynArray; out SendSmsResult: Integer;
out recId: ArrayOfLong; out status: TByteDynArray); stdcall;




چند بار Import رو از اول انجام دادم ولي باز هم همين حالت رو داشت نمي دونم شايد مشكل مال خود وب سرويس بود من هم موارد تكراري رو حذف كردم مشكل رفع شود ولي خروجي نال مي داد بعد از كلي جستجو خط زير رو پيدا كردم و به يونيت اضافه كردم
InvRegistry.RegisterInvokeOptions(TypeInfo(SendSoa p), ioDocument);

فقط وقت كردم يكي از توابعش رو تست كنم كه زمان پاسخ دهي اش به دو سوم كاهش پيدا كرده بود خيلي ممنون:تشویق:
اگر ممكنه به چندتا سوال من هم جواب بديد:خجالت:
اولا :دستكاري كردن در يونيتي كه Import شده ايرادي دارد يا خير؟ (البته اين مورد رو براي استفاده در برنامه هاي بعدي مي پرسم)
ثانيا : در يه جايي تو همين سايت خوندم در زمان استفاده از اين روش امكان استفاده از ترد وجود نداره آيا اين طور است؟
ثالثا : ممنون مي شم روش خودتون را با روش استفاده دستی از IdHttp به لحاظ معايب و محاسن مقايسه كنيد

البته شرمنده اما از اونجايي برنامه من با روش قبلي كامل شده و در برنامه اصلي مورد استفاده قرار گرفته فعلا امكان تغيير اساسي در كدها براي من وجود ندارد دوستان راه حل ديگري براي بالا بردن سرعت پاسخدهي استفاده دستی از IdHttp ندارند؟