2011-01-11 16 views

Trả lời

5

Có là Scheduler project on SqueakSource trông giống như cron cho Smalltalk. Từ cái nhìn tổng quan:

"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.

Bạn có thể kết hợp điều đó với mã chặn hoặc saveImageInBackgroundNicely OSProcess của nêu trên và có một giải pháp tốt đẹp dễ dàng.

+0

Cảm ơn bạn. Trình lập lịch biểu hoạt động khá tốt. Tôi chỉ sử dụng: làm: [SmalltalkImage snapshot hiện tại: true andQuit: false.] Và cũng làm smalltalk Chạy như Adiministrator để nó có thể lưu tệp. – elviejo79

5

Result of a discussion on the mailing list, với một số đóng băng xung quanh để chạy nó chỉ theo giờ:

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

Xa hơn [cùng một chuỗi đó] (http://lists.gforge.inria.fr/pipermail/pharo-project/2010-July/029851.html) cũng có đề cập đến 'UnixProcess saveImageInBackgroundNicely' từ * OSProcess * có thể lưu hình ảnh bằng tiến trình nền Unix. Bạn có thể thích sử dụng điều này nếu bạn không muốn hình ảnh chặn mỗi giờ. –

+0

Hmm. Tôi không thể tìm thấy phương thức có tên saveImageInBackgroundNicely trong Pharo 1.1.1. Không phải là lớp UnixProcess. Tôi tự hỏi chuyện gì đã xảy ra ở đó. – nes1983

+0

Lớp đó là từ [OSProcess] (http://www.squeaksource.com/OSProcess.html) mà không có trong cơ sở Pharo. –

1

Bạn có thể làm điều đó và nó có thể hoạt động tốt.

Nhưng tôi sẽ không làm điều đó.

Không bền vững trong sản xuất.

Tại sao?

Vì hình ảnh giống như phiên của bạn trong máy tính xách tay. Tiết kiệm hình ảnh của bạn giống như đặt máy tính xách tay của bạn vào giấc ngủ: nó vẫn tồn tại mọi thứ.

Và về lâu dài, một số tiểu bang sẽ có một số shit không thể giải thích mà có thể làm phức tạp một cái gì đó và bạn sẽ cần phải làm một khởi động lại cứng.

Nó không giúp đỡ để cố gắng là người cầu toàn về nó (hoặc có thể nó nhưng chắc chắn không phải là kinh tế). Nó sẽ chỉ xảy ra và khởi động lại máy tính xách tay của bạn là giải pháp rẻ tiền để có trạng thái tươi mới. Nhưng điều đó cho ứng dụng smalltalk của bạn có thể không phải là giá rẻ.

Khởi động lại cứng trong smalltalk sẽ có nghĩa là bạn phải chụp ảnh mới và tải lại tất cả mã của bạn (nó có thể được tự động nhưng trải nghiệm có thể tốn thời gian).

+0

+1 để hiển thị chế độ xem này nhưng tôi không đồng ý. Dựa trên hình ảnh kiên trì có thể được sử dụng thành công.Tôi nghĩ rằng ngay cả Dabble DB cũng dựa vào nó (sử dụng một hình ảnh cho mỗi khách hàng). Có thể khó xác định các vấn đề nhất định trong một biểu đồ đối tượng phức tạp hơn là một cơ sở dữ liệu dựa trên lược đồ và Squeak chính nó chỉ có thể xử lý rất nhiều dữ liệu nhưng tất cả đều là về sự cân bằng. –

+1

Ngoài ra, để đảm bảo tính bền vững hợp lý trong hình ảnh, bạn cần linh hoạt về giao dịch. Nếu máy chủ (hoặc máy ảo) bị hỏng vì bất kỳ lý do gì trước khi lưu nó ** sẽ ** bị tổn thương. Không phải tất cả các ứng dụng đều có thể cho phép sự sang trọng không phải là ACID. –

Các vấn đề liên quan