2015-05-24 5 views
9

के रूप में परिनियोजित Hunchentoot आवेदन मैं SBCL कॉमन लिस्प के साथ खेलना शुरू कर दिया और Hunchentoot का उपयोग कर एक छोटा सा वेब अनुप्रयोग विकसित करना चाहते हैं। आसान तैनाती के लिए मैंने एसबी-एक्सटी का उपयोग करके बाइनरी में सबकुछ बचाने की योजना बनाई: सेव-लिस्प-एंड-डाई क्योंकि मैं बड़े आउटपुट आकार के साथ रह सकता हूं।SBCL: निष्पादन

निष्पादन के लिए आप एक उच्चस्तरीय समारोह भी देनी होगी। समस्या यह है कि जब टोपल फ़ंक्शन वापस आता है तो प्रोग्राम निकलता है। मैंने हंचनटोट को निष्पादन योग्य से शुरू करने की कोशिश की, लेकिन कार्यक्रम दो सेकंड के बाद समाप्त हो गया।

मैं कैसे तक प्रतीक्षा कर सकते Hunchentoot कार्यक्रम रुकने से पहले (एक अनुरोध के अंदर से) बंद कर दिया गया? क्या मैं Hunchentoot स्वीकार्य धागे में शामिल होने की तरह कुछ कर सकता हूँ? या क्या मैं लाइव डीबगिंग करने में सक्षम होने के लिए निष्पादन योग्य में आरईपीएल भी शामिल कर सकता हूं?

+0

क्या आपने कभी पता लगाया है कि अपने ऐप को कैसे तैनात किया जाए? मैं अब एक ही स्थिति में हूं। मैंने एक त्वरित ऐप लिखा और इसे तैनात करना चाहते हैं। आपने किस उपकरण का उपयोग किया? – MadPhysicist

+1

@MadPhysicist मैं उस पर नोट्स ले रहा हूं [lisp-travel/web-dev # परिनियोजन] (https://lisp-journey.gitlab.io/web-dev/#deployment)। बस निश्चित रूप से यह नहीं कह सकता क्योंकि मैं एक एसबीसीएल त्रुटि के कारण अभी तक अपना ऐप नहीं चला सका। – Ehvince

+0

@ एविन्स महान! मैं इस पर अपनी नजर रखूंगा। वैसे, मैं लिस्प संसाधनों की एक सूची प्राप्त करने के लिए उत्सुक हूं कि आपको अपनी लिस्प यात्रा पर उपयोगी पाया गया है। किताबों, ऑनलाइन लेखों, आदि के लिए सुझाव – MadPhysicist

उत्तर

3
(ql:quickload :hunchentoot) 
(use-package :hunchentoot) 

(defun main() 
    (hunchentoot:start-server :port 8082) 
    (sb-thread:join-thread (find-if 
          (lambda (th) 
          (string= (sb-thread:thread-name th) "hunchentoot-listener-1")) 
          (sb-thread:list-all-threads)))) 

यदि आप टर्मिनल खोलते हैं (शायद जीएनयू स्क्रीन के माध्यम से) तो आपको एक आरईपीएल तक पहुंच प्रदान करने के लिए कोई स्पष्ट कोड आवश्यक नहीं है। डीबगर में तोड़ने के लिए टर्मिनल पर Ctrl + C भेजें।

+0

ऐसा लगता है कि मैं Hunchentoot के एक नए संस्करण के साथ काम कर रहा हूँ। मुझे उपयोग करना था (hunchentoot: शुरू करें (उदाहरण-उदाहरण 'hunchentoot: आसान स्वीकार्य: पोर्ट 8080) और धागे को "hunchentoot-listener - *: 8080" कहा जाता था। एक आकर्षण की तरह काम करता है। – Sojaki

+1

कैसे '' 'के बारे में -यदि \t (लैम्ब्डा (th) \t (खोज "hunchentoot-श्रोता" (sb-धागा: धागा नाम वें))) \t (sb-धागा: सूची सभी-धागे) के लिए) '' '' 'find-if''' भाग –

संबंधित मुद्दे