एक Mojolicious ऐप में, मैं एक लिंक क्लिक होने पर ओडीटी फ़ाइलों को एचटीएमएल में बदलने की कोशिश कर रहा हूं। मैं फ़ाइलों को "सोफिस", एक शेल कमांड का उपयोग करके रूपांतरित करता हूं। फ़ाइलों को कनवर्ट करने में कुछ समय लगता है। मैं प्रगति के बारे में सूचित करने के लिए उपयोगकर्ता को स्टेटस संदेश भेजता हूं। मैं उन स्थिति अपडेट संदेशों को एक Mojo :: लॉग ऑब्जेक्ट पर लिखकर भेजता हूं। फिर, मैं इस लॉग ऑब्जेक्ट को इवेंटसोर्स रूट में सब्सक्राइब करता हूं।Mojolicious में AnyEvent run_cmd का उपयोग करके, मुझे यह त्रुटि मिलती है: "AnyEvent :: CondVar: रिकर्सिव अवरुद्ध प्रतीक्षा का प्रयास किया गया"
फिर मैं फ़ाइलों के माध्यम से लूप करता हूं और बाहरी "सोफिस" प्रोग्राम निष्पादित करने के लिए run_cmd तक AnyEvent :: का उपयोग करता हूं।
for my $file (@{ $filelist }) {
my $output_dir = './output_dir';
my $cmd = "soffice --headless --convert-to html --outdir '$output_dir' '$file'";
my $cv = AnyEvent->condvar;
my $w;
$w = run_cmd($cmd,
'>' => sub { my $out = shift;
&WriteToLog({ status => "cmd output '$out'..." });
undef $w;
$cv->send;
},
'2>' => sub { my $err = shift;
&WriteToLog({ status => "ERROR '$err'..." });
undef $w;
$cv->send;
}
);
$cv->recv;
}
मुख्य एनीएवेंट ट्यूटोरियल से बहुत अधिक कॉपी और पेस्ट किया गया। यदि कनवर्ट करने के लिए केवल कुछ फ़ाइलें हैं (लगभग 2 या 3), तो सब ठीक हो जाता है। इवेंटसोर्स कनेक्शन के माध्यम से भेजे गए स्टेटस संदेश क्लाइंट ब्राउज़र पर दिखाई देते हैं। फिर सभी फ़ाइलों को परिवर्तित करने के बाद, वेब पेज प्रस्तुत किया जाता है।
यदि अधिक फ़ाइलों को संसाधित किया जाना है, तो कुछ फ़ाइलें परिवर्तित हो जाती हैं तो थ्रेड शीर्षक में त्रुटि संदेश होता है।
my $initdocs = $r->under->to('docroute#initdocs');
$initdocs->get('/showdocs')->to('docroute#showdocs');
कोड के ऊपर "initdocs" मार्ग में है:
ऊपर कोड युक्त मार्ग के लिए मार्ग यह है।
किसी भी मदद की सराहना की है। अग्रिम में धन्यवाद।
बस भविष्य में, एक [टैग: perl] टैग जोड़कर अधिक लोगों को आपके मोज़ेक प्रश्नों को देखने में मदद मिलेगी। –