से पढ़ने के वास्तविक समय नहीं कर सकते मैं एक सर्वर लंबे समय के आवेदन चल रहा है जो इस तरह की दुकान की प्रक्रिया:redis
routes.php टुकड़ा की
Route::post('cloud/slice/{modelfileid}', '[email protected]');
Route::get('cloud/slice/sliceProgress', '[email protected]');
हिस्सा() फ़ंक्शन:
while($s = fgets($pipes[2]))
{
if(strpos($s, "Progress:") !== FALSE)
{
Log::info(100 * substr($s, -10, 4) . '%');
$this->redis->SET('sliceProgress' . $uid, 100 * substr($s, -10, 4) . '%');
}
}
और मेरे ग्राहक प्रत्येक 0.5 सेकंड के साथ रेडिस में प्रगति का अनुरोध करते हैं:
public function sliceProgress()
{
if (!isset($_SESSION["uid"]))
return Redirect::to('cloud');
$uid = $_SESSION["uid"];
return Response::json(array('status' => 'success', 'data' => array('progress' => $this->redis->GET('sliceProgress' . $uid))));
}
और
$interval(function()
{
$scope.refreshProgress();
}, 500);
लेकिन ग्राहक प्रगति अनुरोध प्राप्त प्रगति कि 100% से कम के बिना 100% के साथ समाप्त करने के लिए जब तक आयोजित करेगा। यह कहना है कि सर्वर स्लाइस एप्लिकेशन समाप्त होने पर मुझे प्रगति प्रतिक्रिया मिलती है। मुझे लगता है कि टुकड़ा प्रसंस्करण करते समय लार्वेल दूसरे अनुरोध को संसाधित नहीं करता है।
संपादित: मैं नीचे दिए गए कोड का उपयोग टुकड़ा() redis- बाद में redis पाने के लिए> सेट में अच्छी तरह से, यह उत्पादन sliceProgress वास्तविक समय काम करता है।
Log::info($this->redis->GET('sliceProgress' . $uid));
पूरी तरह से अपने प्रश्न को समझ में नहीं आता है। पुनः प्रयास करें? –
@ सोमोन विशेष अब इसे जांचें। –
@KrisRoofe आपका प्रश्न क्या है? –