如何每小时自动保存Pharo图像?
-
09-10-2019 - |
题
我想在一个小时自动保存每小时的Pharo图像。
您将如何在图像中自动制作?
我已经看到码头项目这样做。但是我不确定他们是怎么做的。
tia
解决方案
有 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结合使用,并具有一个不错的简单解决方案。
其他提示
邮件列表上讨论的结果, 锦上添花只每小时运行它:
[[self blockUI.
self doUpdate.
SmalltalkImage current snapshot: true andQuit: false.
self unblockUI.
(Delay forDuration: (Duration hours: 1)) wait] repeat] fork
您可以做到,它可能正常。
但是我不会做。
不是生产的持久性。
为什么?
因为图像就像笔记本电脑中的会话一样。保存图像就像让笔记本电脑入睡:它持续了一切。
从长远来看,某些状态将有一些无法解释的狗屎,这可能会使某些事情复杂化,您需要重新启动。
尝试成为完美主义者无济于事(或者也许确实不是经济)。它将只是发生,重新启动笔记本电脑是具有新鲜状态的便宜解决方案。但是对于您的SmallTalk应用程序,可能并不便宜。
在SmallTalk中进行的重新启动将意味着您必须拍摄新的图像并再次加载所有代码(它可以自动化,但经验证明这可能很耗时)。
不隶属于 StackOverflow