Code Monkey home page Code Monkey logo

whmcs-perstalancher's Introduction

گزارش پیشرفت پروژه

گزارش پیشرفت راه‌اندازه خودکار پرستاشاب

فهرست مطالب

خلاصه

کار نوشتن راه‌اندازخودکار از تاریخ ۱۵ اسفند سال گذشته شروع شد و این گزارشی بر پیشرفت پروژه در طول این مدت است. قبل از این تاریخ مشغول خطا‌یابی و توسعه پروژه مدیریت تصاویر پشت سفید بودیم. در طول این مدت کارهای متفرقه‌ی دیگری مانند توسعه کد پایتونی شبه کتابخانه‌ای که با پرستا پروما ارتباط برقرار کند و راحت‌تر کار آپدیت محصولات را انجام دهد که پتانسیل خوبی برای ترکیب شدن با مدیریت تصاویر پشت سفید دارد و کارهای دیگری که می‌توان انجام داد. کار دیگری که صورت گرفت در طول این مدت که ارتباطی با راه‌انداز خودکار نداشت توسعه کد جاوااسکریپتی که در صفحه تعداد محصول پروما کار آپدیت تعداد محصول را سریع‌تر و به صورت خودکار انجام دهد. از کارهای متفرقه می‌توان به توسعه کدی که به دانلود فایل حجیم از سروری به سرور دیگر نام برد و غیره...

شروع کار

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

طراحی دوم

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

طراحی سوم

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

مشکلات حیاتی

در فایلی که کنار پوشه اسکلتون قرار دارد فایل های غیر ضروری نیز سرو می‌شوند که امنیت کار را می‌آورد پایین. این فایل کنار فایل‌های سایت بدون فشرده سازی است که سرعت ساخت اکانت را می‌آورد پایین. دیتابیس به صورت یکجا پر می‌شود که باعث کندی برنامه می شود. و غیره...

طراحی چهارم

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

مشکلات حیاتی

چون از ماژول سرور استفاده می کنیم مدیریت حجم سایت و چند سروری از جمله مشکلاتی است که داریم. از دیگر مشکلات این طراحی به دیلیل زمان بر بودن و اتصال همزمان دو محیط اگر در زمانی که ماژول در حال راه‌اندازی است کاربر بازیابی صفحه را قطع کند راه‌اندازی به صورت نیمه کاره راه می‌شود. و غیره...

طراحی پنجم

بعد از کلی امتحان و خطا بدلیل وجود نداشتن یک نیروی فنی با تجربه در این زمینه بالاخره به منزل مقصود رسیدیم به نظرم من که در طول این پروژه گام به گام با آن همراه بودم این راه حل ۸۰ درصد راه‌حل نهایی ما برای سرور‌های شرین و کم هزینه است این راه‌حال در صورت تغییر می‌کند که ما یک سرور اختصاصی خود استفاده کنیم که باز هم می‌توان آن را بهینه‌تر کرد. در اینجا ما به جای استفاده از ماژول سروری خودمان از ماژول سروری سایت اصلی استفاده می‌کنیم و به جای آن به یک قلاب گوش می‌دهیم و برای جلوگیری از ورود کاربر به محیط اکانت از قلاب۱ و قلاب۲ استفاده می‌کنیم. ما با استفاده از یک ایمیل خوش‌آمد گویی اختصاصی و تیکت به کاربر اعلام می کنیم که درخواستش ثبت شده و بعد از بررسی و تایید نهایی نتیجه به ایشان اعلام می‌شود اینگونه کاربر منتظر نمی‌باشد و نمی‌تواند کار را نصفه کاره بگذارد و از طرفی بدیلی استفاده از ماژول خود سایت اطمینان پذیری بالایی دریافت می‌کنیم. ما در راه‌انداز از ادآن ماژول استفاده می‌کنیم.

تصویر

قدم ۱

ما با استفاده از یک قلاب از پذیریش درخواست مطلع می‌شویم.

قدم ۲

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

قدم ۳

حال همه اطلاعات لازم برای به فایل موجود در اکانت انتقال داده می‌شود

قدم ۴

اطلاعات داخل دیتابیس صف کرون جاب قرار گرفته و در لحظه پاسخ برمی‌گردد وگرنه دوباره کاربر باید به انتظار بشیند

قدم ۵

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

قدم ۶

حال هم می‌توان مستقیم و به صورت غیر همزمان اقدام به کامل کردن دیتابیس و تغییر پارمتر و پاک کردن فایل های اضافی و تغییر ورژن زبان کرد بدلیل اینکه سرعت این ها خوب است نباید به مشکلی خورد ولی برای تمیزی و جلوگیری مشکلات احتمالی می توان از یک کرون ثانویه در سایت اصلی استفاده کرد که این موضوع باید مورد تست و آزمایش قرار گیرد در آخر هم باید ایمیل راه‌اندازی و تیکت راه‌اندازی حاوی اطلاعات هویتی به کاربر ارسال شود

بیشتر

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

به امید سلامتی و موفقیت سجاد فهیمیان تاریخ ۵ اردیبهشت ۱۴۰۲ ساعت ۳ صبح ۴ ساعت نیم قبل از اعزام به سربازی

ضمیمه

whmcs-perstalancher's People

Contributors

sajadfahimian avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.