[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