Month: آبان ۱۳۹۸

Nginx و مولتی ترد

Nginx و مولتی ترد

قبلا پروژه پر ترافیکی برای یک شرکت با ۵۰۰ کاربر هم زمان طراحی کرده بودم

دو سال از روی پروژه گذشت و سری بهش زدم

پروژه رو با پایتون جانگو و django rest framework و redis و mysql و mongo و elastic زده بودم

جا داره تعجب کنید چرا اینقدر ابزار

ولی سرعتشون فوق العادست.

رفتم به nginx گفتم بجای استفاده از یک core برو از 4 تا core استفاده کن

سرعتش دقیقا ۱۶ برابر شد :)))

Posted by محمد رضا بهمنی in کد زنی, 0 comments
وقتی وظیفه تمامی ارسال پیام ها را به گوگل میسپاریم

وقتی وظیفه تمامی ارسال پیام ها را به گوگل میسپاریم

مدت زیادی بود که دنبال استفاده از google cloud messaging بودم. اونقدر طول کشید که گوگل نامش رو به firebase cloud messaging تغییر نام داد.

با این حال با استفاده از این ابزار جادویی تونستم کارهای زیر رو انجام بدم

ارسال پیام به موبایل های اندرویدی که نسخه از نرم افزارم رو نصب کرده بودند

ارسال پیام به گوگل کروم بصورت نوتیفیکیش

این ارسال از طریق Django صورت گرفت و از طریق Django-fcm

اونقدر کار کردن با گوگل بدون عیب و نقص هست که آدم دوست داره تمامی سرویس هاش رو ببره تو گوگل.

Posted by محمد رضا بهمنی in کد زنی, 0 comments
وقتی Django فعالیت های طولانی را میسپارد به Redis

وقتی Django فعالیت های طولانی را میسپارد به Redis

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

خوب آیا باید تا آخرین لحظه ی ارسال کاربر را معطل نمود و بعضی اوقات بیش از یک دقیقه یک post را معطل گذاشت

مسلما خیر

کاربر ثبت نام میکند و بصورت آنی پیامی دریافت میکند که مثلا پیام کوتاه ارسال شد و پیام کوتاه به سمت سروری دیگر ارسال میشود و در صف اجرا قرار میگیرد

این ماجرا توسط Django و redis به خوبی پیش بینی شده است البته broker های متنوعی وجود دارد که rabbitmq هم شامل می شود

Posted by محمد رضا بهمنی in کد زنی, 0 comments
تبدیل صفحه angularjs به pdf

تبدیل صفحه angularjs به pdf

چند روز وقت گذاشتم برای تبدیل صفحه angularjs به pdf و نتایج زیر رو گرفتم

  • weasyprint به خوبی تبدیل به pdf میکنه در پایتون ولی بطور کل جاوا اسکریپت رو نادیده میگیره
  • weasyprint نسبت به authentication در وب امکاناتی نداره
  • html2pdf برای پایتون ۳.۶ طراحی نشده
  • xhtml2pdf به خوبی در نمیاره صفحه رو
  • و ….
  • آخر مجبور شدم صفحه ای میخواستم تبدیل به pdf یا png کنم رو در قالب iframe با مدیریت دسترسی در اختیار کاربر قرار بدم تا سر وقت مناسبت بیشتر روی این حوزه کار کنم
  • ولی آخرش phantomJS خیلی خوب و خفن بود که امکان attach کوکی هم داشت و کمی جواب میداد ولی مشکلی که داشت این بود صبر نمیکرد تا تمامی کلاس های انگولار اینجکت بشه

این هم به همین خاطر جواب نداد

Posted by محمد رضا بهمنی in کد زنی, 0 comments