பணி முடிந்ததாகக் காட்டப்படும், ஆனால் பதிவிறக்கம் காலியாக உள்ளதா? தனி மரணதண்டனை மற்றும் விநியோக நிலை
பொத்தான் "முடிந்தது" என்று கூறுகிறது, ஆனால் நான் பதிவிறக்கம் என்பதைக் கிளிக் செய்யும் போது, எனக்கு காலியான கோப்பு கிடைக்குமா? பிரச்சனை பெரும்பாலும் உடனடி உரை அல்ல, ஆனால் பின்தளத்தில் அல்காரிதம் இயங்கியதை மட்டுமே நினைவில் கொள்கிறது, டெலிவரி தயாராக உள்ளதா என்பதை அல்ல. செயல்பாட்டின் நிலை மற்றும் விநியோக நிலையைப் பிரிப்பதன் மூலம் மட்டுமே, முன்-இறுதியானது பயனருக்கு உண்மையான முன்னேற்றத்தைக் கூற முடியும். இந்த கட்டுரை பிளவு யோசனையை தெளிவாக விளக்குகிறது.
பணிப் பக்கம் "முழுமையானது" என்பதைக் காட்டுகிறது, ஆனால் நான் பதிவிறக்கம் என்பதைக் கிளிக் செய்யும் போது, எனக்கு ஒரு வெற்று கோப்பு கிடைக்கும். பிரச்சனை பெரும்பாலும் உடனடி உரை அல்ல, ஆனால் பின்தளமானது அல்காரிதம் செயல்படுத்தலின் முடிவை மட்டுமே பதிவு செய்கிறது மற்றும் டெலிவரி தயாராக உள்ளதா என்பதை பதிவு செய்யாது. இந்த கட்டுரை ஆவண செயலாக்கம், ஒத்திசைவற்ற பணிகள் அல்லது மொழிபெயர்ப்பு ஒருங்கிணைப்பு செய்யும் டெவலப்பர்களுக்காக எழுதப்பட்டது. படித்த பிறகு, எக்ஸிகியூஷன் நிலை மற்றும் டெலிவரி நிலையை எவ்வாறு பிரிப்பது என்பதை நீங்கள் அறிந்துகொள்வீர்கள், இதனால் முன் முனையானது பயனருக்கு உண்மையான முன்னேற்றத்தைக் காண்பிக்கும்.
இந்த கட்டுரையில் உள்ள எடுத்துக்காட்டுகள் செயற்கை மாதிரிகளைப் பயன்படுத்துகின்றன, மேலும் குறியீடு தனிமைப்படுத்தப்பட்ட சூழலில் மாதிரி சரிபார்க்கப்பட்டது. இது அனைத்து உண்மையான கோப்புகள் அல்லது தயாரிப்பு விளைவுகளுக்கு உத்தரவாதம் அளிக்காது. முக்கியமான ஆவணங்களைச் செயலாக்குவதற்கு முன், அசல் ஆவணங்களை வைத்து, உரையில் உள்ள எல்லைகள் மற்றும் ஏற்றுக்கொள்ளும் உருப்படிகளின்படி அவற்றை மதிப்பாய்வு செய்யவும்.
பதிவிறக்கம் ஒரு வெற்று கோப்பு, ஆனால் பணி முடிந்ததாக காட்டப்படுமா? ஒரு வாக்கியத்தின் முடிவு
முதலில் "செயலாக்கம் முடிந்தது" என்பதை மூன்று நிலைகளாகப் பிரிக்கவும்: செயலாக்கம், தயாரிப்பு மற்றும் ஏற்றுக்கொள்ளல், பின்னர் முன் முனை உறுதிப்படுத்தப்பட்ட நிலையை மட்டுமே காட்டட்டும்.
| உங்கள் நிலைமை | பரிந்துரைக்கப்பட்ட நடைமுறைகள் | காரணம் |
|---|---|---|
| பணி முடிந்தது, ஆனால் கோப்பு இன்னும் உருவாக்கப்படவில்லை | "தயாரிப்பு தயார்" நிலையை உள்ளிடவும், அதை முன்கூட்டியே காட்டாமல் பதிவிறக்கம் செய்யலாம். | செயலாக்கத்தின் முடிவு என்பது கணக்கீடு நிறுத்தப்பட்டது என்று மட்டுமே பொருள், ஆனால் கோப்புகள் உள்ளன என்று அர்த்தம் இல்லை. |
| கோப்பு உருவாக்கப்பட்டது, ஆனால் உள்ளடக்கம் இன்னும் சரிபார்க்கப்படவில்லை | "முடிவுகளைச் சரிபார்ப்பதை" வைத்து, ஏற்றுக்கொள்ளும் வரை காத்திருக்கவும் | தயாரிப்பு தயார்நிலை என்பது விநியோக ஒப்பந்தத்தை பூர்த்தி செய்வதைக் குறிக்காது |
| பணி தோல்வியடைந்தது | தோல்வி நிலை மற்றும் காரணத்தைக் காட்டி, அதற்கான செயல்களைக் கொடுங்கள் | தோல்வியும் நிலைகளைக் கொண்டிருக்க வேண்டும் மற்றும் சுழலும் ஐகானுடன் மறைக்க முடியாது |
| பதிவிறக்கம் HTTP 200ஐ வழங்குகிறது | வகை, அளவு, பாகுபடுத்துதல் கிடைக்கும் தன்மை மற்றும் எதிர்பார்க்கப்படும் உள்ளடக்கத்தை தொடர்ந்து சரிபார்க்கவும் | 200 உள்நுழைவுப் பக்கம், பிழை JSON அல்லது வெற்று ஆவணத்துடன் தொடர்புடையதாக இருக்கலாம் |
செயலாக்கம், தயாரிப்பு மற்றும் ஏற்றுக்கொள்ளல் ஆகியவற்றுக்கு இடையே குறைந்தபட்சம் வேறுபடுத்துங்கள்
செயலாக்கத்தின் முடிவு என்பது கணக்கீடு நிறுத்தப்பட்டது என்று பொருள்; தயாரிப்பு தயாராக உள்ளது, அதாவது கோப்பைக் காணலாம்; மற்றும் ஏற்றுக்கொள்ளல் முடிந்தது, அதாவது கோப்பு விநியோக ஒப்பந்தத்தை சந்திக்கிறது. இந்த மூன்றும் ஒரே நேரத்தில் நிகழ வேண்டிய அவசியமில்லை.
தோல்விக்கு நிலைகள் இருக்க வேண்டும் மற்றும் நிரந்தரமாக சுழலும் ஐகானால் மறைக்க முடியாது. செயலாக்கம், உருவாக்கம் அல்லது சரிபார்ப்பு ஆகியவற்றின் போது பிழை ஏற்பட்டதா என்பது பயனருக்குத் தெரியும், எனவே உள்ளீட்டை காத்திருக்க வேண்டுமா, மீண்டும் முயற்சிக்க வேண்டுமா அல்லது சரிசெய்வதா என்பது அவர்களுக்குத் தெரியும்.
📊 முக்கிய ஒப்பீடு
| மாநில | கேள்விகளுக்கு பதிலளித்தார் | பயனர்களுக்கு பதிவிறக்கங்கள் உறுதியளிக்க முடியுமா? |
|---|---|---|
| செயலாக்கத்தின் முடிவு | கணக்கீடு நிறுத்தப்பட்டதா | முடியாது |
| தயாரிப்பு தயார் | இடம் பெறக்கூடிய கோப்பு உள்ளதா | இல்லை, இன்னும் சரிபார்க்க வேண்டும் |
| ஏற்பு முடிந்தது | ஆவணம் விநியோக ஒப்பந்தத்தை சந்திக்கிறதா? | முடியும் |
ஜம்பிங் வெற்றியை வெளிப்படையாக மறுக்கவும்
from enum import Enum
class State(Enum):
PROCESSING = "processing"
ARTIFACT_READY = "artifact_ready"
VERIFIED = "verified"
FAILED = "failed"
def transition(state, event):
allowed = {
(State.PROCESSING, "stored"): State.ARTIFACT_READY,
(State.PROCESSING, "error"): State.FAILED,
(State.ARTIFACT_READY, "checks_passed"): State.VERIFIED,
(State.ARTIFACT_READY, "error"): State.FAILED,
}
if (state, event) not in allowed:
raise ValueError("invalid state transition")
return allowed[(state, event)]
s = transition(State.PROCESSING, "stored")
assert s is State.ARTIFACT_READY
assert transition(s, "checks_passed") is State.VERIFIED
assert transition(s, "error") is State.FAILED
try:
transition(State.PROCESSING, "checks_passed")
except ValueError:
pass
else:
raise AssertionError("cannot skip artifact readiness")
இந்த செயற்கை நிலை இயந்திரத்தில் வரிசை ரத்து, மதிப்பாய்வு மற்றும் காலாவதி நீக்கம் ஆகியவை இல்லை. அனைத்து நிகழ்வுகளையும் "வெற்றி/தோல்வி" பைனரியாக மாற்றுவதை விட, உற்பத்தி செயலாக்கங்கள் வணிகத்திற்கு ஏற்ப அளவிடப்பட வேண்டும்.
ஒத்திசைவற்ற செய்திகள் மீண்டும் மீண்டும் அல்லது ஒழுங்கற்றதாக இருக்கலாம், பதிப்பு எண்கள், பரிவர்த்தனைகள் மற்றும் ஐடிம்போடென்ட் செயலாக்கம் ஆகியவற்றின் ஒத்துழைப்பு தேவைப்படுகிறது. இல்லையெனில், பழைய செய்திகள் புதிய நிலையை மேலெழுதலாம், அதே பணியை மீண்டும் மீண்டும் எழுதலாம்.
முன்-இறுதித் தூண்டுதல்கள் உண்மைகளுடன் ஒத்திருக்க வேண்டும்
முன் முனையில் உள்ள ஒவ்வொரு மாநிலமும் பின் முனையால் உறுதிசெய்யப்படக்கூடிய ஒரு உண்மைக்கு ஒத்திருக்க வேண்டும் மற்றும் அதற்கான கிடைக்கக்கூடிய செயல்களை கொடுக்க வேண்டும்.
| மாநில | பயனர்கள் பார்க்க முடியும் | கிடைக்கும் செயல்கள் |
|---|---|---|
| processing | செயலாக்கம் | முன்னேற்றத்தை சரிபார்க்கவும் அல்லது ரத்து செய்யவும் |
| artifact_ready | முடிவுகளை சரிபார்க்கிறது | முன் உறுதி இல்லாமல் கிடைக்கும் |
| verified | கோப்பு பதிவிறக்கம் | ஏற்றுக்கொள்ளும் வழிமுறைகளைப் பதிவிறக்கி பார்க்கவும் |
| failed | தோல்வியின் நிலைகள் மற்றும் காரணங்கள் | காரணத்தால் சரிசெய்யவும் அல்லது மீண்டும் முயற்சிக்கவும் |
பதிவிறக்கம் வெற்றிகரமாக இருந்தாலும், உள்ளடக்கம் சரியானது என்று அர்த்தமல்ல.
HTTP 200 உள்நுழைவுப் பக்கம், தவறான JSON அல்லது வெற்று ஆவணத்தை வழங்கலாம். ஏற்றுக்கொள்வது குறைந்தபட்சம் பின்வரும் உருப்படிகளைச் சரிபார்க்க வேண்டும்:
- வகை: கோப்பு வடிவம் எதிர்பார்த்தபடி உள்ளதா
- அளவு: கோப்பு காலியாக உள்ளதா அல்லது வெளிப்படையாக அசாதாரணமாக உள்ளதா
- பகுப்பு கிடைக்கும் தன்மை: கோப்பைத் திறந்து சாதாரணமாக பாகுபடுத்த முடியுமா
- எதிர்பார்க்கப்படும் உள்ளடக்கம்: உள்ளடக்கம் பணித் தேவைகளுடன் ஒத்துப்போகிறதா
மொழிபெயர்ப்பிற்கு, மொழி ஒருமைப்பாடு மற்றும் கலைச்சொற்கள் மதிப்பாய்வு ஆகியவை உயர்நிலை சரிபார்ப்புகளாகும், மேலும் "கோப்பைத் திறக்க முடியும்" என்று மாற்றக்கூடாது.
மொழிபெயர்ப்புத் திறன்களை ஒருங்கிணைக்கும்போது, நிலையை வெளிப்படைத்தன்மையுடன் வைத்திருங்கள்
OmniDoc (தயாரிப்பு போர்டல்) ஐ அணுகிய பிறகு, உங்கள் சொந்த தயாரிப்புகள் அவற்றின் சொந்த சேமிப்பு மற்றும் விநியோக நிலையை இன்னும் பராமரிக்க வேண்டும். பிளாட்ஃபார்ம் பணி முடிந்ததும், அதை முதலில் "முடிவுகளைப் பெறத் தொடங்கு" என்று வரைபடமாக்கலாம், பின்னர் கோப்பு இருப்பதை உறுதிசெய்த பிறகு வெற்றி காட்டப்படும். இது நேரடியாக ஒரு மாநிலத்தை அனுப்புவதை விட பயனரின் உண்மையான அனுபவத்துடன் ஒத்துப்போகிறது.
குறிப்புகள்: Python enum
🎯 எந்த முறை உங்களுக்கு ஏற்றது?
நீங்கள் என்றால்....
உங்கள் பணி வெறும் பின்னணி கணக்கீடு மற்றும் வெளிப்புற டெலிவரி கோப்பு இல்லை என்றால்
செயலாக்கத்தின் முடிவு மற்றும் தோல்வி நிலைகள் மட்டுமே பதிவு செய்யப்பட வேண்டும், மேலும் தயாரிப்பு மற்றும் ஏற்றுக்கொள்ளல் தற்காலிகமாக தவிர்க்கப்படலாம்.
பயனர்கள் முடிவுகளைப் பதிவிறக்க அனுமதிக்க வேண்டும் என்றால்
தயாரிப்பு தயாராகும் வரை நீங்கள் காத்திருக்க வேண்டும் மற்றும் அது பதிவிறக்கத்திற்குக் கிடைக்கும் என காட்டப்படும் முன் ஏற்றுக்கொள்ளப்பட்டது.
மூன்றாம் தரப்பு செயலாக்க தளத்திற்கான அணுகல் உங்களிடம் இருந்தால்
"முடிவுகளைப் பெறத் தொடங்கு" என்பதற்கு மேப் பிளாட்ஃபார்ம் நிறைவு, பின்னர் கோப்பை உறுதிசெய்த பிறகு வெற்றியைக் காட்டவும்.
பணிகள் மீண்டும் மீண்டும் அல்லது ஒழுங்கின்றி திரும்பினால்
மாநிலத்திற்கு ஒரு பதிப்பு எண்ணைச் சேர்த்து, பரிவர்த்தனைகள் மற்றும் திறமையற்ற செயலாக்கம் மூலம் மட்டுமே மாநிலம் முன்னேறுவதை உறுதிசெய்யவும்.
❓ அடிக்கடி கேட்கப்படும் கேள்விகள் (FAQ)
1. பணி முடிந்ததாகக் காட்டப்படுகிறது, அதை ஏன் இன்னும் பதிவிறக்கம் செய்ய முடியவில்லை?
செயலாக்கத்தின் முடிவானது கணக்கீடு நிறுத்தப்பட்டது என்று மட்டுமே பொருள்படும் என்பதால், தயாரிப்பு தயாராக உள்ளது என்பதை உறுதிப்படுத்த வேண்டும் மற்றும் ஏற்றுக்கொள்ளப்பட்டது, அதாவது கோப்பு விநியோக ஒப்பந்தத்தை பூர்த்தி செய்கிறது.
2. பதிவிறக்கம் HTTP 200ஐ வழங்குகிறது. கோப்பில் எந்தப் பிரச்சனையும் இல்லை என்று இது அர்த்தப்படுத்துகிறதா?
நிச்சயமற்ற. HTTP 200 ஆனது உள்நுழைவுப் பக்கம், தவறான JSON அல்லது வெற்று ஆவணத்தை வழங்கலாம், மேலும் வகை, அளவு, பாகுபடுத்துதல் கிடைக்கும் தன்மை மற்றும் எதிர்பார்க்கப்படும் உள்ளடக்கத்திற்கான சோதனைகள் தேவைப்படும்.
3. தோல்வி நிலைக்கு ஏன் நிலைகள் உள்ளன?
தோல்வி கட்டமானது, பிரச்சனை செயலாக்கப்படுகிறதா, உருவாக்குகிறதா அல்லது சரிபார்க்கிறதா என்பதை பயனருக்கு தெரிவிக்கிறது, எனவே அவர்கள் காத்திருக்க, மீண்டும் முயற்சிக்க அல்லது உள்ளீட்டை சரிசெய்ய முடிவு செய்யலாம்.
4. மொழிபெயர்ப்பு பணிகளுக்கு கோப்பை திறக்க முடிந்தால் போதுமா?
போதாது. மொழி ஒருமைப்பாடு மற்றும் கலைச்சொற்கள் சரிபார்ப்புகள் உயர்நிலை சரிபார்ப்புகள் மற்றும் "கோப்பை திறக்க முடியும்" என்று மாற்றப்படக்கூடாது.
📝 சுருக்கம்
செயல்பாட்டின் நிலை மற்றும் விநியோக நிலையைப் பிரிப்பதன் மூலம் மட்டுமே, முன் முனை பயனருக்கு உண்மையான முன்னேற்றத்தைக் கூற முடியும். தயாரிப்பு தயாரானதும், ஏற்றுக்கொள்ளப்பட்டதும் மட்டுமே, பதிவிறக்கம் செய்யக் கூடியதாகக் காட்டப்பட வேண்டும்.
இப்போது முயற்சிக்கவும்: அசல் தளவமைப்பைத் தக்கவைத்து, மொழிபெயர்ப்பைத் தொடங்க ஆவணத்தைப் பதிவேற்றவும்


