മൾട്ടി-ത്രെഡുള്ള റസ്റ്റ് ഉപയോഗിച്ച് ഞങ്ങൾ സിംഗിൾ-ത്രെഡഡ് C++ ഇൻ്റർഫേസ് ചെയ്തു
മൾട്ടി-ത്രെഡുള്ള റസ്റ്റ് ഉപയോഗിച്ച് ഞങ്ങൾ സിംഗിൾ-ത്രെഡഡ് C++ ഇൻ്റർഫേസ് ചെയ്തു ഇൻ്റർഫേസിൻ്റെ ഈ സമഗ്രമായ വിശകലനം അതിൻ്റെ പ്രധാന ഘടകങ്ങളുടെയും വിശാലമായ പ്രത്യാഘാതങ്ങളുടെയും വിശദമായ പരിശോധന വാഗ്ദാനം ചെയ്യുന്നു. ഫോക്കസിൻ്റെ പ്രധാന മേഖലകൾ ചർച്ച കേന്ദ്രീകരിക്കുന്നത്: കോർ മെക്ക്...
Mewayz Team
Editorial Team
മൾട്ടി-ത്രെഡഡ് റസ്റ്റ് ഉപയോഗിച്ച് ഞങ്ങൾ സിംഗിൾ-ത്രെഡഡ് C++ ഇൻ്റർഫേസ് ചെയ്തു
മൾട്ടി-ത്രെഡുള്ള റസ്റ്റ് ഉപയോഗിച്ച് സിംഗിൾ-ത്രെഡഡ് C++ കോഡ് ഇൻ്റർഫേസ് ചെയ്യുന്നത് സാധ്യമല്ല - പൂർണ്ണമായി റീറൈറ്റുചെയ്യാതെ തന്നെ ലെഗസി സിസ്റ്റങ്ങളെ നവീകരിക്കുന്നതിനുള്ള ഏറ്റവും പ്രായോഗികമായ മാർഗമാണിത്. Mewayz-ൽ, 138,000 ഉപയോക്താക്കൾക്ക് സേവനം നൽകുന്നതിന് ഞങ്ങളുടെ 207-മൊഡ്യൂൾ ബിസിനസ്സ് OS സ്കെയിൽ ചെയ്യുമ്പോൾ ഈ കൃത്യമായ വെല്ലുവിളി ഞങ്ങൾ നേരിട്ടു, കൂടാതെ സിസ്റ്റങ്ങളുടെ പരസ്പര പ്രവർത്തനക്ഷമതയെക്കുറിച്ച് ഞങ്ങൾ ചിന്തിക്കുന്ന രീതിയെ അടിസ്ഥാനപരമായി ഫലങ്ങൾ മാറ്റി.
മൾട്ടി-ത്രെഡഡ് റസ്റ്റ് ഉപയോഗിച്ച് സിംഗിൾ-ത്രെഡഡ് C++ നിങ്ങൾ എന്തിനാണ് ഇൻ്റർഫേസ് ചെയ്യുന്നത്?
മിക്ക പ്രൊഡക്ഷൻ സിസ്റ്റങ്ങളും വർഷങ്ങളായി യുദ്ധത്തിൽ പരീക്ഷിച്ച C++ കോഡാണ് വഹിക്കുന്നത്. റസ്റ്റിൽ എല്ലാം മാറ്റിയെഴുതുന്നത് പേപ്പറിൽ ആകർഷകമായി തോന്നുന്നു, പക്ഷേ ഇത് വലിയ അപകടസാധ്യതയും മാസങ്ങളുടെ എഞ്ചിനീയറിംഗ് സമയവും അവതരിപ്പിക്കുന്നു. റസ്റ്റിൻ്റെ ഉടമസ്ഥാവകാശ മാതൃകയിലേക്ക് കൺകറൻസി-ഹെവി വർക്ക്ലോഡ് ഓഫ്ലോഡ് ചെയ്യുമ്പോൾ നിലവിലുള്ള C++ ലോജിക് പൊതിയുന്നതാണ് പ്രായോഗിക സമീപനം.
ഞങ്ങളുടെ കാര്യത്തിൽ, കോർ ബിസിനസ് ലോജിക് മൊഡ്യൂളുകൾ വർഷങ്ങളായി ഒറ്റ-ത്രെഡുള്ള C++ ൽ വിശ്വസനീയമായി പ്രവർത്തിക്കുന്നു. അവർ തുടർച്ചയായ ടാസ്ക് പ്രോസസ്സിംഗ്, ഡോക്യുമെൻ്റ് നിർമ്മാണം, സാമ്പത്തിക കണക്കുകൂട്ടലുകൾ എന്നിവ കൈകാര്യം ചെയ്തു. എന്നാൽ ഞങ്ങളുടെ ഉപയോക്തൃ അടിത്തറ 100K കഴിഞ്ഞപ്പോൾ, ഞങ്ങൾക്ക് സമാന്തര ഡാറ്റ പ്രോസസ്സിംഗ്, ഒരേസമയം API കൈകാര്യം ചെയ്യൽ, സുരക്ഷിതമായ പങ്കിട്ട-സംസ്ഥാന മാനേജ്മെൻ്റ് എന്നിവ ആവശ്യമാണ്. റസ്റ്റിൻ്റെ Send, Sync എന്നീ ഗുണവിശേഷതകൾ ഞങ്ങൾക്ക് കംപൈൽ-ടൈം കൺകറൻസി ഗ്യാരണ്ടി നൽകുന്നു, വിപുലമായ മാനുവൽ ഓഡിറ്റിംഗ് കൂടാതെ C++ ന് ഓഫർ ചെയ്യാൻ കഴിയില്ല.
പ്രധാന പ്രചോദനം അപകടസാധ്യത കുറയ്ക്കലാണ്. നിങ്ങൾ പ്രവർത്തിക്കുന്നത് സൂക്ഷിക്കുകയും ഏത് സ്കെയിലുകൾ ചേർക്കുകയും ചെയ്യുന്നു - ഒരിക്കലും പൂർത്തിയാക്കാൻ കഴിയാത്ത മൈഗ്രേഷനിൽ നിങ്ങളുടെ മുഴുവൻ കോഡ്ബേസും ചൂതാട്ടമില്ലാതെ.
FFI അതിർത്തി യഥാർത്ഥത്തിൽ എങ്ങനെ പ്രവർത്തിക്കുന്നു?
C++, Rust എന്നിവയ്ക്കിടയിലുള്ള ഫോറിൻ ഫംഗ്ഷൻ ഇൻ്റർഫേസ് (FFI) പ്രവർത്തിക്കുന്നത് സി-അനുയോജ്യമായ ഫംഗ്ഷൻ സിഗ്നേച്ചറുകളിലൂടെയാണ്. റസ്റ്റിൻ്റെ എക്സ്റ്റേൺ "C" ബ്ലോക്കുകൾ C++ ന് നേരിട്ട് വിളിക്കാവുന്ന പ്രവർത്തനങ്ങളെ തുറന്നുകാട്ടുന്നു, തിരിച്ചും. റസ്റ്റിൻ്റെ മൾട്ടി-ത്രെഡ് റൺടൈമിന് സിംഗിൾ-ത്രെഡുള്ള C++ കോഡ് സുരക്ഷിതമായി ആവശ്യപ്പെടുമ്പോൾ ഗുരുതരമായ വെല്ലുവിളി ഉയർന്നുവരുന്നു.
ഒരു സമർപ്പിത ആർക്കിടെക്ചർ ഉപയോഗിച്ച് ഞങ്ങൾ ഇത് പരിഹരിച്ചു:
- ത്രെഡ് പരിമിതമായ C++ എക്സിക്യൂട്ടർ: എല്ലാ C++ കോളുകളും ഒരു സന്ദേശം-പാസിംഗ് ചാനൽ ഉപയോഗിച്ച് ഒരൊറ്റ സമർപ്പിത ത്രെഡ് വഴിയാണ് ഫണൽ ചെയ്യുന്നത്, സിംഗിൾ-ത്രെഡുള്ള മാറ്റമില്ലാത്തത് ഒരിക്കലും ലംഘിക്കപ്പെടുന്നില്ലെന്ന് ഉറപ്പാക്കുന്നു.
- റസ്റ്റ് അസിൻക് ബ്രിഡ്ജ് ലെയർ: ടോക്കിയോ ടാസ്ക്കുകൾ C++ എക്സിക്യൂട്ടറിന് വർക്ക് സമർപ്പിക്കുകയും റസ്റ്റ് വശം പൂർണ്ണമായും അസമന്വിതമായി നിലനിർത്തിക്കൊണ്ട് വൺഷോട്ട് ചാനലുകളിലൂടെ
കാത്തിരിക്കുകഫലങ്ങൾ നൽകുകയും ചെയ്യുന്നു. - ഒപാക് പോയിൻ്റർ മാനേജ്മെൻ്റ്: C++ ഒബ്ജക്റ്റുകൾ റസ്റ്റ് സ്ട്രക്റ്റുകളിൽ പൊതിഞ്ഞിരിക്കുന്നു, അത് നിർണ്ണായകമായ ക്ലീനപ്പിനായി
ഡ്രോപ്പ്നടപ്പിലാക്കുന്നു, ഭാഷാ അതിർത്തിയിൽ മെമ്മറി ചോർച്ച തടയുന്നു. - അതിർത്തിയിലെ സീരിയലൈസേഷൻ: സങ്കീർണ്ണമായ ഡാറ്റാ ഘടനകൾ FFI ലെയറിലെ FlatBuffers-ലേക്ക് ക്രമീകരിച്ചിരിക്കുന്നു, ഇത് ദുർബലമായ ഘടനാ ലേഔട്ട് പൊരുത്തപ്പെടുത്തൽ ഒഴിവാക്കുകയും ഓരോ വശത്തിൻ്റെയും സ്വതന്ത്ര പരിണാമം പ്രാപ്തമാക്കുകയും ചെയ്യുന്നു.
- പാനിക് ഐസൊലേഷൻ: റസ്റ്റിൻ്റെ
catch_unwindഎല്ലാ FFI എൻട്രി പോയിൻ്റിലും പൊതിയുന്നു, അങ്ങനെ ഒരു പരിഭ്രാന്തി ഒരിക്കലും ഭാഷയുടെ അതിരുകൾ കടക്കില്ല, അത് നിർവചിക്കപ്പെടാത്ത സ്വഭാവമായിരിക്കും.
ഒറിജിനൽ ബിസിനസ്സ് നിയമങ്ങളുടെ ഒരു വരി പോലും തിരുത്തിയെഴുതാതെ - തെളിയിക്കപ്പെട്ട C++ ലോജിക്കിൻ്റെ വിശ്വാസ്യതയോടെ മൾട്ടി-ത്രെഡഡ് റസ്റ്റിൻ്റെ ത്രൂപുട്ട് ഈ പാറ്റേൺ ഞങ്ങൾക്ക് നൽകി.
ഒഴിവാക്കേണ്ട ഏറ്റവും വലിയ അപകടങ്ങൾ എന്തൊക്കെയാണ്?
ഏറ്റവും അപകടകരമായ തെറ്റ്, C++ കോഡ് അല്ലാത്തപ്പോൾ ത്രെഡ്-സേഫ് ആണെന്ന് കരുതുന്നതാണ്. ഗ്ലോബൽ സ്റ്റേറ്റ്, സ്റ്റാറ്റിക് വേരിയബിളുകൾ, നോൺ-റെൻറൻ്റ് ലൈബ്രറി കോളുകൾ എന്നിവ എഫ്എഫ്ഐ അതിർത്തിയിലുടനീളം റസ്റ്റിൻ്റെ കംപൈലറിന് കണ്ടെത്താൻ കഴിയാത്ത ഡാറ്റാ റേസുകൾക്ക് കാരണമാകും. റസ്റ്റിൻ്റെ സുരക്ഷാ ഉറപ്പുകൾ സുരക്ഷിതമല്ലാത്ത ബ്ലോക്കിൽ നിർത്തുന്നു — ഉള്ളിലുള്ളതെല്ലാം നിങ്ങളുടെ ഉത്തരവാദിത്തമാണ്.
പ്രധാന ഉൾക്കാഴ്ച: റസ്റ്റ് അതിൻ്റെ സ്വന്തം കോഡിനുള്ളിൽ മെമ്മറി സുരക്ഷ ഉറപ്പുനൽകുന്നു, എന്നാൽ നിങ്ങൾ C++ ലേക്ക് FFI അതിർത്തി കടക്കുന്ന നിമിഷം, C++ ൻ്റെ എല്ലാ ത്രെഡ്-സുരക്ഷാ പ്രശ്നങ്ങളും നിങ്ങൾക്ക് അവകാശമായി ലഭിക്കും. ആ അതിർത്തിക്ക് ചുറ്റുമുള്ള വാസ്തുവിദ്യ അതിൻ്റെ ഇരുവശത്തുമുള്ള കോഡിനേക്കാൾ പ്രധാനമാണ്.
💡 DID YOU KNOW?
Mewayz replaces 8+ business tools in one platform
CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.
Start Free →
ആജീവനാന്ത മാനേജ്മെൻ്റാണ് മറ്റൊരു പൊതു പോരായ്മ. C++ ഒബ്ജക്റ്റുകൾ റസ്റ്റിൻ്റെ കടം വാങ്ങൽ പരിശോധനയിൽ പങ്കെടുക്കുന്നില്ല. C++ ഒരു പോയിൻ്റർ കൈവശം വച്ചിരിക്കുമ്പോൾ റസ്റ്റ് ഒരു റഫറൻസ് ഡ്രോപ്പ് ചെയ്യുകയാണെങ്കിൽ, രോഗനിർണ്ണയത്തിന് ക്രൂരമായി ബുദ്ധിമുട്ടുള്ള ഉപയോഗാനന്തര ബഗുകൾ നിങ്ങൾക്ക് ലഭിക്കും. കർശനമായ ഉടമസ്ഥാവകാശ സെമാൻ്റിക്സ് നടപ്പിലാക്കിക്കൊണ്ട് ഞങ്ങൾ ഇത് അഭിസംബോധന ചെയ്തു: C++ ഒബ്ജക്റ്റുകൾ എല്ലായ്പ്പോഴും ഒരു റസ്റ്റ് റാപ്പറിൻ്റെ ഉടമസ്ഥതയിലുള്ളതാണ്, കൂടാതെ റസ്റ്റ് വശത്തുള്ള ആർക്ക് അടിസ്ഥാനമാക്കിയുള്ള റഫറൻസ് കൗണ്ടിംഗിലൂടെയാണ് പങ്കിട്ട ആക്സസ്സ്.
പ്രകടനം അനുസരിച്ച്, അമിതമായ FFI കോളുകൾ സന്ദർഭ സ്വിച്ചിംഗിൽ നിന്നും സീരിയലൈസേഷനിൽ നിന്നും ഓവർഹെഡ് സൃഷ്ടിക്കുന്നു. സാധ്യമാകുന്നിടത്തെല്ലാം ഞങ്ങൾ പ്രവർത്തനങ്ങൾ ബാച്ച് ചെയ്യുന്നു, വ്യക്തിഗത ക്രോസ്-ലാംഗ്വേജ് കോളുകൾ ചെയ്യുന്നതിനുപകരം C++ എക്സിക്യൂട്ടറിലേക്ക് വർക്ക് ഇനങ്ങളുടെ ഒരു ക്യൂ അയയ്ക്കുന്നു.
ഈ സമീപനം ഉൽപ്പാദനത്തിൽ എങ്ങനെ പ്രവർത്തിച്ചു?
ഞങ്ങളുടെ പ്ലാറ്റ്ഫോമിലുടനീളം ഹൈബ്രിഡ് ആർക്കിടെക്ചർ വിന്യസിച്ചതിന് ശേഷം, ഞങ്ങൾ കൃത്യമായ മെച്ചപ്പെടുത്തലുകൾ അളന്നു. സീക്വൻഷ്യൽ C++ പ്രോസസ്സിംഗിൽ മുമ്പ് തടസ്സം നേരിട്ട മൊഡ്യൂളുകൾക്കായി അഭ്യർത്ഥന ത്രൂപുട്ട് 3.4x വർദ്ധിച്ചു. C++ അതിൻ്റെ സമർപ്പിത ത്രെഡിൽ കമ്പ്യൂട്ടേഷൻ-ഹെവി ടാസ്ക്കുകൾ കൈകാര്യം ചെയ്യുമ്പോൾ റസ്റ്റിൻ്റെ അസിൻക് റൺടൈമിന് സ്വതന്ത്രമായ അഭ്യർത്ഥനകൾ ഒരേസമയം പ്രോസസ്സ് ചെയ്യാൻ കഴിയുന്നതിനാൽ ടെയിൽ ലേറ്റൻസി (p99) 61% കുറഞ്ഞു.
കൂടുതൽ പ്രധാനമായി, ഉൽപ്പാദനത്തിൻ്റെ ആദ്യ ആറ് മാസങ്ങളിൽ ഞങ്ങൾക്ക് സീറോ കൺകറൻസിയുമായി ബന്ധപ്പെട്ട ബഗുകൾ ഉണ്ടായിരുന്നു. ത്രെഡ്-കോൺഫൈൻമെൻ്റ് പാറ്റേൺ സി++ കോഡിന് ഒന്നിലധികം ത്രെഡുകളിൽ നിന്ന് വിളിക്കുന്നത് ഘടനാപരമായി അസാധ്യമാക്കി, അതേസമയം റസ്റ്റിൻ്റെ ടൈപ്പ് സിസ്റ്റം അതിൻ്റെ അതിർത്തിയിൽ ഡാറ്റ റേസുകളെ തടഞ്ഞു. മ്യൂട്ടക്സുകൾ ഉപയോഗിച്ച് C++ ലേക്ക് ത്രെഡിംഗ് ചേർക്കാൻ ശ്രമിക്കുന്ന ഞങ്ങളുടെ മുൻ സമീപനത്തേക്കാൾ ഇത് ഗണ്യമായ പുരോഗതിയാണ്, ഇത് ഒരൊറ്റ പാദത്തിൽ മൂന്ന് റേസ്-കണ്ടീഷൻ സംഭവങ്ങൾ സൃഷ്ടിച്ചു.
വേഗതയേറിയ ആവർത്തന ചക്രങ്ങളും എഞ്ചിനീയറിംഗ് ടീം റിപ്പോർട്ട് ചെയ്തു. നിലവിലുള്ള C++ മൊഡ്യൂളുകൾ പരിഷ്ക്കരിക്കാതെ പ്രവർത്തിക്കുന്നത് തുടരുമ്പോൾ, പൂർണ്ണ കൺകറൻസി പിന്തുണയോടെ പുതിയ സവിശേഷതകൾ റസ്റ്റിൽ നിർമ്മിക്കാൻ കഴിയും. ഈ വർദ്ധിച്ചുവരുന്ന തന്ത്രം അർത്ഥമാക്കുന്നത് ഞങ്ങൾക്ക് ഒരിക്കലും ഉയർന്ന അപകടസാധ്യതയുള്ള "ബിഗ് ബാംഗ്" മൈഗ്രേഷൻ ഇല്ലായിരുന്നു - സ്ഥിരവും അളക്കാവുന്നതുമായ പുരോഗതി.
പതിവ് ചോദിക്കുന്ന ചോദ്യങ്ങൾ
മാറ്റം വരുത്താതെ റസ്റ്റിന് സിംഗിൾ-ത്രെഡഡ് C++ ലൈബ്രറികളെ വിളിക്കാൻ കഴിയുമോ?
അതെ, എന്നാൽ ആ ലൈബ്രറിയിലേക്കുള്ള എല്ലാ കോളുകളും ഒരൊറ്റ ത്രെഡിൽ നിന്നാണെന്ന് നിങ്ങൾ ഉറപ്പാക്കണം. ഒരു ചാനലിലൂടെ എല്ലാ C++ കോളുകളും സീരിയലൈസ് ചെയ്യുന്ന ഒരു സമർപ്പിത എക്സിക്യൂട്ടർ ത്രെഡ് സൃഷ്ടിക്കുക എന്നതാണ് സ്റ്റാൻഡേർഡ് പാറ്റേൺ. മൾട്ടി-ത്രെഡുള്ള റൺടൈം തടയാതെ റസ്റ്റിൻ്റെ അസിൻക് ടാസ്ക്കുകൾ അഭ്യർത്ഥനകൾ സമർപ്പിക്കുകയും പ്രതികരണങ്ങൾക്കായി കാത്തിരിക്കുകയും ചെയ്യുന്നു. C++ കോഡിന് തന്നെ മാറ്റങ്ങളൊന്നും ആവശ്യമില്ല - സുരക്ഷാ നിയന്ത്രണം പൂർണ്ണമായും റസ്റ്റ് ഭാഗത്ത് നടപ്പിലാക്കുന്നു.
അപ്ലിക്കേഷൻ പ്രകടനത്തെ ബാധിക്കാൻ FFI ഓവർഹെഡ് പ്രാധാന്യമുള്ളതാണോ?
വ്യക്തിഗത FFI കോളുകൾക്ക് ഏറ്റവും കുറഞ്ഞ ഓവർഹെഡ് ഉണ്ട് - ഒരു ലളിതമായ ഫംഗ്ഷൻ കോളിന് സാധാരണയായി 10 നാനോ സെക്കൻഡിൽ താഴെ. എന്നിരുന്നാലും, സങ്കീർണ്ണമായ ഡാറ്റാ ഘടനകളുടെ സീരിയലൈസേഷനും അതിർത്തിയിലെ ത്രെഡ് സിൻക്രൊണൈസേഷനും നിങ്ങൾ ആയിരക്കണക്കിന് മികച്ച കോളുകൾ ചെയ്യുകയാണെങ്കിൽ കൂട്ടിച്ചേർക്കുന്നു. ബാച്ചിംഗ് പ്രവർത്തനങ്ങളും FlatBuffers അല്ലെങ്കിൽ Cap'n Proto പോലുള്ള സീറോ-കോപ്പി സീരിയലൈസേഷൻ ഫോർമാറ്റുകളും ഉപയോഗിക്കുന്നത് സ്കെയിലിൽ പോലും ഓവർഹെഡ് നിസ്സാരമായി നിലനിർത്തുന്നു.
ഇൻ്റർഫേസിങ്ങിന് പകരം റസ്റ്റിൽ നമ്മുടെ C++ കോഡ്ബേസ് മാറ്റിയെഴുതണോ?
മിക്ക ടീമുകൾക്കും, ഇൻക്രിമെൻ്റൽ ഇൻ്റർഫേസിംഗ് സുരക്ഷിതവും വേഗതയേറിയതുമായ പാതയാണ്. ഒരു പൂർണ്ണമായ തിരുത്തിയെഴുത്ത് പൂർത്തിയാകുന്നതുവരെ ഉപയോക്തൃ മുഖവിലയില്ലാതെ മാസങ്ങളോളം എഞ്ചിനീയറിംഗ് അപകടസാധ്യതകൾ അവതരിപ്പിക്കുന്നു. മെച്ചപ്പെടുത്തലുകൾ ഉടനടി അയയ്ക്കാനും ഉൽപാദനത്തിലെ റസ്റ്റ് സമീപനം സാധൂകരിക്കാനും കൺകറൻസി ഏറ്റവും കൂടുതൽ സ്വാധീനം ചെലുത്തുന്നതിനെ അടിസ്ഥാനമാക്കി മൊഡ്യൂളുകൾ ഒരെണ്ണം മൈഗ്രേറ്റ് ചെയ്യാനും ഇൻ്റർഫേസിംഗ് നിങ്ങളെ അനുവദിക്കുന്നു. FFI അതിർത്തി പരിപാലിക്കുന്നതിനുള്ള ചെലവ് റീറൈറ്റിംഗ് ചെലവിനേക്കാൾ കൂടുതലാകുന്ന മൊഡ്യൂളുകൾ മാത്രം വീണ്ടും എഴുതുക.
മെവെയ്സിൽ, സാങ്കേതികമായും പ്രവർത്തനപരമായും സ്കെയിൽ ചെയ്യുന്ന അടിസ്ഥാന സൗകര്യങ്ങൾ ഞങ്ങൾ നിർമ്മിക്കുന്നു. ഞങ്ങളുടെ 207-മൊഡ്യൂൾ ബിസിനസ്സ് OS 138,000 ടീമുകളെ $19/മാസം മുതൽ മികച്ച വർക്ക്ഫ്ലോകൾ പ്രവർത്തിപ്പിക്കാൻ സഹായിക്കുന്നു. നിങ്ങൾ പ്രോജക്റ്റുകൾ മാനേജുചെയ്യുകയാണെങ്കിലും, പ്രവർത്തനങ്ങൾ ഓട്ടോമേറ്റ് ചെയ്യുകയാണെങ്കിലും അല്ലെങ്കിൽ നിങ്ങളുടെ ബിസിനസ്സ് സ്കെയിൽ ചെയ്യുകയാണെങ്കിലും, നിങ്ങൾ ജോലി ചെയ്യുന്ന രീതിയുമായി Mewayz പൊരുത്തപ്പെടുന്നു. app.mewayz.com-ൽ നിങ്ങളുടെ സൗജന്യ ട്രയൽ ആരംഭിക്കുക കൂടാതെ നിങ്ങളുടെ ടീമിനായി ഒരു ആധുനിക ബിസിനസ് OS-ന് എന്തുചെയ്യാനാകുമെന്ന് കാണുക.
We use cookies to improve your experience and analyze site traffic. Cookie Policy