में पूरा हो गया है या नहीं, मुझे यह जांचना होगा कि क्या क्यूई (बीनस्टॉकड) में जॉब जोड़ा गया है, लैरवेल (लैरवेल 5) में पूरा हो गया है और यदि यह पूरा हो गया है तो मुझे अपडेट किए गए रिकॉर्ड को वापस करने की आवश्यकता है (कार्य डेटाबेस में कतार अद्यतन रिकॉर्ड में जोड़ा गया)। मैं अपने composer.json
में शामिल किया है:कैसे जांचें कि बीनस्टॉकड कतार में जॉब लार्वेल
"pda/pheanstalk": "3.*"
मैं इस तरह से क़तार में नौकरी जोड़ें:
public function find($queueName, $jobId, $recordId)
{
$phean = Queue::getPheanstalk();
try {
$phean->peek($jobId);
$data = ['status' => 'waiting'];
} catch (ServerException $e) {
$message = $e->getMessage();
if ($message == 'NOT_FOUND: Job ' . $jobId . ' does not exist.') {
$data = ... // here I get from database data for $recordId
} else {
$data = ['status' => 'error'];
}
}
return $data;
}
:
$jobId = Queue::push('App\Class', $object->toArray(), $this->getQueueName());
मैं अगर काम का उपयोग कर पूरा किया गया जाँच करने के लिए उपयोग निम्नलिखित समारोह है
सवाल यह है कि क्या यह विश्वसनीय तरीका है कि यह जांचने के लिए कि क्या नौकरी पूरी हो गई है? मैं यहाँ तुलना करता हूं कि संदेश अपवाद से मिलता है। मुझे यह जांचने का कोई और तरीका नहीं मिला है कि नौकरी पूरी हो गई है या नहीं।
आप सही हैं, लेकिन जब यह असफल हो जाता है तो नौकरी विफल हो जाती है। इसलिए जब मैं यह जांचना चाहता हूं कि नौकरी पूरी हो गई है, भले ही मैंने असफल नौकरियों में देखा हो, तो मुझे किसी भी तरह की जांच करने की ज़रूरत है यदि नौकरी अभी भी कतार में है क्योंकि यह अभी भी कतार में है, न कि असफल नौकरियों में। –
अरे, ऐसा लगता है कि pbeanstalk चल रही नौकरियों की पूरी सूची प्राप्त करने का कोई तरीका नहीं प्रदान करता है। आप जॉब से संबंधित जानकारी डेटाबेस में संग्रहीत कर सकते हैं और हटाए जाने या विफल होने पर इसकी स्थिति को चिह्नित कर सकते हैं। – Ray