ファロ画像を1時間ごとに自動的に保存する方法は?
-
09-10-2019 - |
質問
1時間ごとにPharo画像を自動的に保存したいです。
画像内でこの自動をどのように作成しますか?
桟橋プロジェクトがこれを行うのを見てきました。しかし、私は彼らがそれをどのように行うのかわかりません。
ティア
解決
そこには SqueakSourceのスケジューラプロジェクト それはSmallTalkのCronのように見えます。概要から:
"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のSaveImageInbackgroundに上記のSaveImageInbackgroundに組み合わせて、簡単なソリューションを用意することができます。
他のヒント
メーリングリストでの議論の結果、 1時間ごとに実行するためにいくつかのアイシングがあります:
[[self blockUI.
self doUpdate.
SmalltalkImage current snapshot: true andQuit: false.
self unblockUI.
(Delay forDuration: (Duration hours: 1)) wait] repeat] fork
あなたはそれをすることができ、それはうまくいくかもしれません。
しかし、私はそれをしません。
生産における永続性はありません。
なんで?
画像はラップトップのセッションのようなものだからです。画像を保存することは、ラップトップを眠らせるようなものです。それはすべてを維持します。
そして、長い目で見れば、一部の状態は、何かを複雑にすることができる説明できないたわごとを持っているでしょう、そしてあなたはハード再起動をする必要があります。
それについて完璧主義者になろうとするのは助けにはなりません(または、おそらくそれは確かに経済的ではありません)。それはただ起こり、あなたのラップトップを再起動することは、新鮮な状態を持つための安価なソリューションです。しかし、それはあなたのSmallTalkアプリにとってそれほど安くはないかもしれません。
SmallTalkでのハードリブートは、新鮮な画像を取得してすべてのコードを再度ロードする必要があることを意味します(自動化できますが、経験は時間がかかる可能性があります)。