راه حل مناسب برای دریافت نرخ ارز و ذخیره آن
https://lamtakam.com/qanda/2310/راه-حل-مناسب-برای-دریافت-نرخ-ارز-و-ذخیره-آن 0سلام دوستان
اول یه توضیح راجب این بخش بدم, ببینید یه فرمی وجود داره توی این فرم ارز دیجیتال انتخاب میشه و مقدار درخواستی هم وارد میشه و قیمت نهایی رو بصورت ریال نمایش میده (ajax)
این بخش رو تغریبا نوشتم و همه چی اوکی بوده اما تا اینکه قیمت نهایی رو نمایش بده خیلی زمان میبره دلیلشم بنظرم مربوط میشه به دریافت نرخ ارزها چون هربار یک درخواست به وبسرویس ارسال میشه برای دریافت قیمت دلاری ارز و یک درخواست دیگه به وبسرویس دیگه ای ارسال میشه برای دریافت قیمت دلار و حالا باقی مراحل که مربوط میشه به محاسبه قیمت.(البته در این باره مطمئن نیستم چون هنوز روی سرور تست نکردم و روی لوکال هستش)
حالا من میتونم یه تسک بنویسم که هر 5 دیقه اجرا بشه و کارهایی که میشه انجام داد :
1-نرخ ارز رو دریافت کنه داخل دیتابیس ذخیره و کش بشه
2- داخل یه فایل ذخیره کنه
و یا اینکه بعد از دریافت فقط اطلاعات رو کش کنه بدون اینکه داخل دیتابیس یا فایلی ذخیره بشه
اینها راه حل هایی هست که به ذهنم میرسه اما باز هم یه مشکلی هست, برای قیمت دلار این راه حل ها مناسب هستن چون قیمتش بصورت لحظه ای تغیر نمیکنه اما برای ارزهای دیجیتال ممکنه توی این 5 دیقه ای که میخوایم نرخ جدید رو بگیریم صد بار قیمت ها تغیر کرده باشه
اگه راه حل مناسبی دارید ممنون میشم راهنمایی کنید
1 | ببین به صورت طبیعی، 2 تا ریکوئست و یه سری محاسبات منطقی و ریاضی نباید زمان زیادی بگیره. شاید الگوریتم های محاسباتی مشکل دارن، یا در ارائه اون APIها تاخیری وجود داره که خب باید بررسی بشه و در مرحله اول باید علت کند بودن فرایند رو مشخص کنی. بعد طبق اون میتونیم یک راه حل درست ارائه کنیم. ضمنا، شاید بد نباشه یک مقدار دقیق تر بگی که منظورت از «خیلی زمان میبره» دقیقا چقدره؟ ــ سجاد شفی زاده |
||
1 | ببینید من فکر میکنم که کش کردن این جور دیتا کلا درست نیست و کاربرپسند نیست. چرا که بیشمار نمونه موجود هستند که سوکت زدن و به صورت realtime دارن دیتاشونو بروزرسانی میکنن. اره اگر 1 میلیون درخواست در دقیقا داشته باشید، در اون صورت شاید منطقی باشه که مثلا 5 ثانیه دیتا رو کش کنید که بجای 1 میلیون بار استفاده از API در دقیقه، مستقیم از کش بخونید. و تازه در این صورت هم باید بالای سایتتون یک پیام بنویسید که اطلاعات دارن با 5 ثانیه تاخیر بروزرسانی میشن. در کل من با کش کردن دیتا موافق نیستم در این مورد. ــ سعید مرادی در 6 سال قبل | ||
ممنونم... در حد 5 الی 10 ثانیه البته اینو بر اساس مقایسه با سایت های مشابه گفتم چون اگه سایت هایی مثل پیمنت 24 رو دیده باشید قسمت محاسبه هزینه خیلی سریع انجام میشه. @سجاد.شفی.زاده.★ ــ مجتبی دلشاد در 6 سال قبل | |||
1 | @سعید.مرادی تو موارد مالی حتی اون ۵ ثانیه هم مشکل بر انگیزه و اینکه اگه سایتی واقعا این حجم از تراکنش های مالی رو داشته باشه خودش منابع ارزی قابل توجه ی داره و میتونه تامین کنه به این علت قیمت خودش رو میتونه بزاره مثل ی صرافی ــ فرید صالحی در 6 سال قبل | ||
1 | @فرید.صالحی بله تا حدی موافقم. ولی من بیشتر داشتم از نظر معماری نرم افزار بررسی میکردم تا از نظر بیزینسی. ولی در کل اره معمولا یک وب سایت در مقیاس درخواست های میلیونی در دقیقه، خودش قطعا صاحب نظر میشه و میتونه نرخ رو اعلام کنه و حتی ارزش پیشنهادی مشخص کنه. ــ سعید مرادی در 6 سال قبل | ||
بله دقیقا یه پروژه صرافی ارزهای دیجیتال هستش اما فکر نمیکنم در این حد درخواست داشته باشه @فرید.صالحی@سعید.مرادی ــ مجتبی دلشاد در 6 سال قبل | |||
1 | آها، خب ببین 5 الی 10 ثانیه واقعا منطقی نیست برای 2 تا درخواست و یک سری محاسبات. مثلا صفحه پرسیدن سوال از همین لام تا کام، توی فیلد «عنوان»، 16 تا درخواست داره ارسال میشه با هر کاراکتری که توش وارد یا حذف میشه. مثلا شما اگه توی فیلد عنوان بنویسی «ارز»، یه لیستی از عناوین مرتبط با ارز رو بهت پیشنهاد میده که معمولا زیر 1 ثانیه تمام اون 16 تا درخواست به همراه پاسخشون و پردازش روشون انجام میشه. پس باید بررسی بکنی ببینی چرا اینقدر زمان میگیره پردازش کد تو. ــ سجاد شفی زاده |
||
یه تغیراتی توی الگوریتم محاسبات انجام میدم و پروژه رو هم روی سرور میبرم تا ببینم چه تغیری میکنه اگه تغیری نکرد کدهارو قرار میدم تا شما و دوستان یه نگاهی بندازید شاید نحوه محاسبات بنده اشتباه باشه که قطعا همینطوره @سجاد.شفی.زاده.★ ــ مجتبی دلشاد در 6 سال قبل | |||
1 | آها راستی گفتی پروژت روی لوکاله؟ :-) خب برادر من همینه دیگه .. ببری روی سرور حداقل 5X فرایند سریع تر میشه. از من میشنوی قبل از اینکه بخوای توی مکانیسم و الگوریتم های محاسباتیت تغییری ایجاد کنی، اول ببر روی سرور، و میبینی که همه ی مشکلات حل میشن ــ سجاد شفی زاده |
||
2 | یک مقوله ای که دوستان خیلی بهش اشاره ای نکردن، نتورکه. وقتی صحبت از api به میان میاد، مهمترین پارامتر اندازه گیری سرعت اجرای فرایند میشه network، شاید این همه کندی به خاطر شبکه هست. متوسط پینگ سرورایی که ازشون api میگیرید چنده؟ سیستم خود شما از چه شبکه و اینترنتی داره استفاده میکنه؟ ــ ساناز رضایی در 6 سال قبل | ||
1 | @ساناز.رضایی دقیقا به همین علت هست که بنده چندبار گفتم یک همچین پروسه ای طبیعتا نباید این همه زمان گیره و اصرار کردم که هرچی زودتر کدشون رو ببرن روی سرور و تست بگیرن. چرا که سرور ها در یک شبکه خیلی سریع تری قرار دارن و به تبع این عملیات خیلی سریع تر انجام خواهد شد. ــ سجاد شفی زاده |
||
3 | بله همینطور که اقای شفی زاده گفتند پروژه رو روی سرور بردم و مشکل حل شد..ممنون از پاسخ همه دوستان @سجاد.شفی.زاده.★@ساناز.ر ضایی ــ مجتبی دلشاد در 6 سال قبل |