[Pkg] Sake : Sake-Scheduler-kph.11.mcz

squeak-dev-noreply at lists.squeakfoundation.org squeak-dev-noreply at lists.squeakfoundation.org
Thu Jul 2 14:17:02 UTC 2009


A new version of Sake-Scheduler was added to project Sake :
http://www.squeaksource.com/Sake/Sake-Scheduler-kph.11.mcz

==================== Summary ====================

Name: Sake-Scheduler-kph.11
Author: kph
Time: 2 July 2009, 3:16:58 pm
UUID: a5e68e08-8304-4a11-ab65-19a515e352db
Ancestors: Sake-Scheduler-kph.10

Fixed Scheduler Tests

+ minor api change doOnce:at: -> do:onceAt:
+ Fixes for new higher clock resolution

=============== Diff against Sake-Scheduler-kph.10 ===============

Item was changed:
  ----- Method: Scheduler>>do:every: (in category 'scheduling') -----
  do: aBlock every: aDuration
  
+ 	^ self addTask: (ScheduledTask do: aBlock every: aDuration)!
- 	self addTask: (ScheduledTask do: aBlock every: aDuration)!

Item was changed:
  ----- Method: Scheduler>>do:at: (in category 'scheduling') -----
  do: aBlock at: when 
  
+ 	^ self addTask: (ScheduledTask do: aBlock at: when)!
- 	self addTask: (ScheduledTask do: aBlock at: when)!

Item was changed:
  ----- Method: ScheduledTask class>>unload (in category 'as yet unclassified') -----
  unload
  
+ 	self stop!
- 	self scheduler removeTasksOfClass: self!

Item was changed:
  ----- Method: Scheduler>>do:following: (in category 'scheduling') -----
  do: aBlock following: aSchedule
  
+ 	^ self addTask: (ScheduledTask do: aBlock following: aSchedule)!
- 	self addTask: (ScheduledTask do: aBlock following: aSchedule)!

Item was changed:
  ----- Method: SchedulerTest>>testRunOnceInPastRunsOnce (in category 'as yet unclassified') -----
  testRunOnceInPastRunsOnce
  
  	| message |
+ 	scheduler do: [message := 'task ran'] onceAt: (DateAndTime now - 1 second).
- 	scheduler doOnce: [message _ 'task ran'] at: (DateAndTime now - 1 second).
  	
  	1 second asDelay wait.
  	
  	self should: [message = 'task ran'].
  	self should: [scheduler taskCount = 0]!

Item was changed:
  ----- Method: SchedulerTest>>testNewTaskScheduledToRunEarlierInDayGetsRescheduledLaterInDay (in category 'as yet unclassified') -----
  testNewTaskScheduledToRunEarlierInDayGetsRescheduledLaterInDay
  
  	| message when task |
  
  	when _ (DateAndTime now - 1 minute) asTime.
  	
  	task _ scheduler do: [message _ 'task ran'] at: when.
  	
  	1.1 seconds asDelay wait.
  
  	self should: [message isNil].
  	self should: [scheduler taskCount = 1].
+ 	self should: [task nextRunTime asSeconds =
+ 		 (DateAndTime date: (Date today addDays: 1) time: when) asSeconds]!
- 	self should: [task nextRunTime = (DateAndTime date: (Date today addDays: 1) time: when)]!

Item was changed:
  ----- Method: Scheduler>>do:onceAt: (in category 'scheduling') -----
  do: aBlock onceAt: when 
+ 	^ self addTask: (ScheduledTask do: aBlock onceAt: when )!
- 	self addTask: (ScheduledTask do: aBlock onceAt: when )!

Item was changed:
  ----- Method: SchedulerTest>>testRunOnlyOnceWithOnlyTimeSpecified (in category 'as yet unclassified') -----
  testRunOnlyOnceWithOnlyTimeSpecified
  
  	| runCount |
  	runCount _ 0.
+ 	scheduler do: [runCount _ runCount + 1] onceAt: ((DateAndTime now + 1 seconds) asTime).
- 	scheduler doOnce: [runCount _ runCount + 1] at: ((DateAndTime now + 1 seconds) asTime).
  	
  	1.1 seconds asDelay wait.
  	
  	self should: [runCount = 1].
  	self should: [scheduler taskCount = 0]!

Item was changed:
  ----- Method: SchedulerTest>>testRunOnlyOnceWithFullyQualifiedDateAndTime (in category 'as yet unclassified') -----
  testRunOnlyOnceWithFullyQualifiedDateAndTime
  
  	| runCount |
  	runCount _ 0.
+ 	scheduler do: [runCount := runCount + 1] onceAt: (DateAndTime now + 1 seconds).
- 	scheduler doOnce: [runCount _ runCount + 1] at: (DateAndTime now + 1 seconds).
  	
  	1.1 seconds asDelay wait.
  	
  	self should: [runCount = 1].
  	self should: [scheduler taskCount = 0]!

Item was added:
+ ----- Method: ScheduledTask class>>do:onceAt: (in category 'as yet unclassified') -----
+ do: aBlock onceAt: when
+ 
+ 	^ self do: aBlock at: when every: Duration zero!

Item was added:
+ ----- Method: ScheduledTask class>>stop (in category 'as yet unclassified') -----
+ stop
+ 
+ 	self scheduler removeTasksOfClass: self!

Item was changed:
  Object subclass: #ScheduledTask
  	instanceVariableNames: 'description scheduler task runHistory workerProcess schedule nextRunTime'
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'Sake-Scheduler'!
+ 
+ !ScheduledTask commentStamp: 'kph 3/28/2009 17:04' prior: 0!
+ If your task is to be run automatically on load or startUp, override #initialize (class side).
+ Otherwise name the method #start.
+ #stop/#unload are synomonous.
+ !

Item was changed:
  ----- Method: SchedulerTest>>testRunDailyTask (in category 'as yet unclassified') -----
  testRunDailyTask
  
  	| message when task |
  
+ 	when := (DateAndTime now + 1 second) asTime.
- 	when _ (DateAndTime now + 1 second) asTime.
  	
+ 	task := scheduler do: [message := 'task ran'] at: when.
- 	task _ scheduler do: [message _ 'task ran'] at: when.
  	
  	1.1 seconds asDelay wait.
  
  	self should: [message = 'task ran'].
  	self should: [scheduler taskCount = 1].
+ 	self should: [task nextRunTime asSeconds =
+ 		 (DateAndTime date: (Date today addDays: 1) time: when) asSeconds
+ 		]!
- 	self should: [task nextRunTime = (DateAndTime date: (Date today addDays: 1) time: when)]!

Item was changed:
  ----- Method: SchedulerTest>>testRunInASecond (in category 'as yet unclassified') -----
  testRunInASecond
  
  	| ranWhen now |
  	now _ DateAndTime now.
  	
  	scheduler do: [ranWhen _ DateAndTime now] at: (now + 1 seconds).
  	
  	1.1 seconds asDelay wait.
  
+ 	self should: [ranWhen asSeconds = (now asSeconds + 1)]!
- 	self should: [ranWhen = (now + 1 seconds)]!

Item was changed:
  ----- Method: Scheduler>>do:at:every: (in category 'scheduling') -----
  do: aBlock at: when every: aDuration
  
+ 	^ self addTask: (ScheduledTask do: aBlock at: when every: aDuration)!
- 	self addTask: (ScheduledTask do: aBlock at: when every: aDuration)!

Item was removed:
- ----- Method: ScheduledTask class>>doOnce:at: (in category 'as yet unclassified') -----
- doOnce: aBlock at: when
- 
- 	^ self do: aBlock at: when every: Duration zero!



More information about the Packages mailing list