2011-01-11 11 views
9

मैं अपने फ़ारो छवि को स्वचालित रूप से घंटे पर हर घंटे सहेजना चाहता हूं।हर घंटे एक फारो छवि को स्वचालित रूप से कैसे सहेजते हैं?

कैसे आप इस छवि के भीतर स्वत: होगा?

मैं पियर परियोजना देखा है यह करते हैं। लेकिन मुझे यकीन नहीं है कि वे इसे कैसे करते हैं।

TIA

उत्तर

5

Scheduler project on SqueakSource कि स्मालटाक के लिए क्रॉन की तरह लग रहा है।

"Start a new task scheduler and keep it around" 
scheduler := TaskScheduler new. 
scheduler start. 
"Let's save the image every hour" 
scheduler 
    do: [Smalltalk snapshot: true andQuit: false] 
    every: 60 minutes.

आप जोड़ सकता है कि अवरुद्ध कोड या OSProcess के saveImageInBackgroundNicely से ऊपर बताए और एक अच्छा आसान उपाय है: अवलोकन से।

+0

धन्यवाद। शेड्यूलर बहुत अच्छी तरह से काम करता है। मैंने अभी उपयोग किया: करें: [स्मॉलटाक इमेज वर्तमान स्नैपशॉट: सत्य और क्यूइट: झूठी।] और एडमिनेस्ट्रिटर के रूप में स्मॉलटॉक रन भी बनाया ताकि यह फ़ाइल को सहेज सके। इस दृश्य को लाने के लिए – elviejo79

5

कुछ टुकड़े के साथ Result of a discussion on the mailing list, चारों ओर केवल प्रति घंटा इसे चलाने के लिए:

[[self blockUI. 
    self doUpdate. 
    SmalltalkImage current snapshot: true andQuit: false. 
    self unblockUI. 
    (Delay forDuration: (Duration hours: 1)) wait] repeat] fork 
+0

आगे [उसी धागे] [http://lists.gforge.inria.fr/pipermail/pharo-project/2010-July/029851.html) * ओएसप्रोसेस से 'यूनिक्सप्रोसेस सेवइमेजइनबैकग्राउंड अच्छी तरह से' का उल्लेख भी है * जो एक पृष्ठभूमि यूनिक्स प्रक्रिया का उपयोग कर एक छवि को बचा सकता है। यदि आप छवि को हर घंटे अवरुद्ध नहीं करना चाहते हैं तो आप इसका उपयोग करना पसंद कर सकते हैं। –

+0

हम्म। मुझे Pharo 1.1.1 में saveImageInBackground नामक एक विधि नहीं मिल रही है। न तो एक वर्ग यूनिक्सप्रोसेस। मुझे आश्चर्य है कि वहां क्या हुआ। – nes1983

+0

वह वर्ग [ओएसप्रोसेस] (http://www.squeaksource.com/OSProcess.html) से है जो आधार फारो में शामिल नहीं है। –

1

आप इसे कर सकते हैं और यह ठीक काम कर सकता है।

लेकिन मैं ऐसा नहीं करूँगा।

उत्पादन में दृढ़ता से दृढ़ता नहीं है।

क्यों?

क्योंकि छवियों अपने लैपटॉप में अपने सत्र की तरह हैं। अपनी छवि को सहेजना आपके लैपटॉप को सोने की तरह है: यह सब कुछ बनी रहती है।

और लंबे समय में, कुछ राज्य कुछ unexplainable बकवास है कि कुछ जटिल भी कर सकते हैं और आप एक कठिन रिबूट करने की आवश्यकता होगी।

यह मदद नहीं करता है इसके बारे में पूर्णतावादी हो प्रयास करने के लिए (या शायद यह होता है लेकिन निश्चित रूप से आर्थिक नहीं है)। यह बस होगा और आपके लैपटॉप को रिबूट करना ताजा राज्य रखने का सस्ता समाधान है। लेकिन यह कि आपके छोटे-छोटे ऐप के लिए वह सस्ता नहीं हो सकता है।

स्मॉलटॉक में एक हार्ड रीबूट का अर्थ यह होगा कि आपको एक नई छवि लेनी होगी और फिर अपने सभी कोड को लोड करना होगा (यह स्वचालित हो सकता है लेकिन अनुभव बताता है कि समय लेने वाला हो सकता है)।

+0

+1 लेकिन मैं सहमत नहीं हूं। छवि आधारित दृढ़ता का सफलतापूर्वक उपयोग किया जा सकता है।मुझे लगता है कि यहां तक ​​कि डैबल डीबी ने भी भरोसा किया (प्रति ग्राहक एक छवि का उपयोग करके)। स्कीमा आधारित डेटाबेस की तुलना में जटिल ऑब्जेक्ट ग्राफ़ में कुछ समस्याओं की पहचान करना कठिन हो सकता है और स्क्वाक स्वयं केवल इतना डेटा संभाल सकता है लेकिन यह व्यापार-बंद के बारे में है। –

+1

इसके अलावा, छवियों में उचित दृढ़ता बनाने के लिए, आपको लेनदेन के बारे में लचीला होना चाहिए। यदि सर्वर (या वीएम) इसे सहेजने से पहले किसी भी कारण से नीचे चला जाता है ** ** ** चोट पहुंचाएगा। सभी एप्लिकेशन एसीआईडी ​​नहीं होने की लक्जरी अनुमति दे सकते हैं। –

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