में वेब सेवा के लिए असीमित नौकरी कतार इस समय मैं एक विश्वसनीय सेवा के साथ एक वेब सेवा बनाने की कोशिश कर रहा हूं जो कुछ लंबे समय तक चलने वाले कार्यों (नौकरियों) को संभालता है।क्लोजर
विचार यह है कि उपयोगकर्ता एक पोस्ट करके नौकरी सबमिट करता है जो नौकरी की स्थिति की जांच के लिए कुछ यूआरएल देता है जिसमें परिणामों के लिए यूआरएल भी होता है। एक बार नौकरी पूरी हो जाने के बाद (यानी कुछ मूल्य डेटाबेस में लिखा गया था) परिणाम यूआरएल उचित जानकारी (परिणाम के बजाए) वापस कर देगा और नौकरी यूआरएल एक पूर्ण स्थिति का संकेत देगा।
दुर्भाग्य से गणना काफी गहन है इसलिए केवल एक ही समय में चलाया जा सकता है, इसलिए नौकरियों को कतारबद्ध करने की आवश्यकता है।
कुछछद्म में इस तरह
(def job-queue (atom queue)) ;; some queue
(def jobs (atom {}))
(defn schedule-job [params]
;; schedules the job into the queue and
;; adds the job to a jobs map for checking status via GET
;; note that the job should not be evaluated until popped from the queue
)
(POST "/analyze" [{params :params}]
(schedulde-job params))
(GET "job/:id" [:d]
(get @jobs id))
;; Some function that pops the next item from the queue
;; and evaluates it when the previous item is complete
;; Note: should not terminate when queue is empty!
मैं Lamina जो अतुल्यकालिक प्रसंस्करण की अनुमति देता है देखा है की जरूरत होगी लेकिन यह मेरी आवश्यकताओं के अनुरूप नहीं मालूम था।
मेरा प्रश्न यह है कि कतार खाली होने के बाद नौकरियों के कतार को हटाने और अपने कार्य को निष्पादित करने के बाद, कतार खाली होने पर समाप्त होने के बिना यानी आने वाली नौकरियों को लगातार संसाधित करने के बिना।
मैं क्लोजर में बहुत अच्छा नहीं हूं, इसलिए कोई मदद नहीं, बस एक साइड-नोट: 204 क्यों लौटाएं? मुझे लगता है कि एक वास्तविक संदेश (केवल एक 200) को एक शरीर के साथ वापस करना बेहतर होगा कि यह अभी तक नहीं किया गया है या ऐसा कुछ है? – Nanne
आप सही हैं, जो वास्तव में बेहतर हो सकता है क्योंकि "अगर क्लाइंट उपयोगकर्ता एजेंट है, तो उसे HTTP दस्तावेज़ में अनुरोध भेजने के कारण से अपना दस्तावेज़ दृश्य नहीं बदलना चाहिए, अन्यथा" कोई सामग्री नहीं "मुझे लगता है कि अधिक उपयुक्त होगा। – JoelKuiper
मुझे हमेशा पसंद है अगर आरईएसटी एपीआई http पर खेलने की कोशिश नहीं करता है। जैसा कि, अगर मैं कुछ डेटा का अनुरोध करता हूं (उदाहरण के लिए किसी का खाता लेकिन गलत आईडी के साथ), मैं शरीर के अंदर 200 प्राप्त करने का अधिक प्रशंसक हूं, उदाहरण के लिए 404 उदाहरण के बजाय ऐसा कोई व्यक्ति नहीं है। वही। लेकिन यह ऑफटॉप है, इसके लिए खेद है;) – Nanne