को लंबे समय से चल PostgreSQL समारोह से प्रगति की रिपोर्ट कैसे मैं Npgsql का उपयोग करता है PostgreSQL 9.1.4 में एक plpgsql समारोह कॉल करने के लिए एक सी # क्लाइंट अनुप्रयोग है। फ़ंक्शन में बहुत लंबा समय लगता है और मैं किसी भी तरह से क्लाइंट को प्रगति की रिपोर्ट करना चाहता हूं। मुझे यह कैसे करना चाहिए?ग्राहक
लिस्टेन/नोटिफ़िक तंत्र इसके लिए बिल्कुल सही लगता है, सिवाय इसके कि पूरी चीज एक लेनदेन के अंदर चलती है और नोटिस घटनाएं लेनदेन के अंत तक नहीं भेजी जाती हैं, जो मेरे लिए बेकार है।
दूसरी बात मैं कोशिश की है नोटिस है, जो मैं ग्राहक पर संसाधित कर सकते हैं उठाते हैं, लेकिन फिर भी वे नोटिस थोड़ी देर के लिए बफ़र और बैचों में भेजे जाने के लिए लग रहे हैं। यह कुछ भी नहीं है, लेकिन आदर्श नहीं है। क्या कोई तरीका है कि मैं उन्हें "फ्लश" कर सकता हूं, इसलिए उन्हें तुरंत ग्राहक को भेजा जाता है?
PostgreSQL 8.4 और इससे ऊपर के साथ आप RAISE नोटिस में एक त्रुटि कोड भी प्रदान कर सकते हैं, जिससे प्रगति संदेशों और अन्य नोटिस के बीच अंतर बताना आसान हो जाता है। –
आप सही हैं, यह पता चला है कि नोटिस * को उठाए जाने के रूप में वितरित किया जा रहा था, लेकिन समारोह में एक बहुत अजीब मंदी थी, जो तब नहीं हुआ जब मैं एक ही प्रश्न सीधे चलाता था। मैंने अब इसके लिए एक समाधान तैयार किया है। – EM0
रायइस नोटिस के सापेक्ष महत्वपूर्ण ओवरहेड है - यह क्लाइंट और सर्वर के बीच नेटवर्क हैंडशेक है। मैं आमतौर पर हर पुनरावृत्ति नोटिस नहीं बढ़ाता, लेकिन मुझे हर हज़ार पुनरावृत्ति दिखाई देता है। –