D12779: Summary of development branch 'schedule of asap jobs'
noreply at phabricator.kde.org
Wed May 9 11:18:37 UTC 2018
TallFurryMan created this revision.
TallFurryMan added a reviewer: mutlaqja.
Restricted Application added a project: KDE Edu.
Restricted Application added a subscriber: kde-edu.
TallFurryMan requested review of this revision.
Evaluation proceeds in three isolated steps:
- Scheduling jobs from altitude, moon separation and dark sky score.
- Adjusting pre-scheduled jobs startup times so that they will start sequentially.
- Selecting and executing the first scheduled jobs, eventually advancing its startup time.
There is no need now to remove jobs which are more than 12 hours away, because those are necessarily configured by the user, not the scheduler.
Added original startup time to SchedulerJob. This fixes the issue where jobs were stored with their scheduled startup time instead of their original startup time in the .esl.
Added a predicate in SchedulerJob to sort based on startup time. Sorting by startup time is useful after readjusting the schedule of jobs starting at the same time.
Added a few automatic resets on startup time, because the possibility to control condition and time independently should be disallowed in the future.
Also displayed completion time and estimated duration in the job table, either from specified time or imaging duration.
User-specified startup/completion times are now marked with a chronometer icon for clarification.
Fixed message about jobs that passed their schedule, which was logging a weird value resulting from 1 day minus the passed delay.
Also forced those past jobs to reevaluate automatically, if possible. This could be better handled with a periodic evaluation when the scheduler is not running.
Added a predicate in SchedulerJob to determine whether a job is a duplicate of another: same name, same sequence file because for now it only depends on capture storage.
Properly made all duplicate jobs complete at the same time while the scheduler is running. This instability in the evaluation was counter-intuitive for the scheduler.
Also checked for duplicate schedule jobs, warning the user that proper priority should be set, as well as repeat count now that sequence jobs properly check their storage folder.
Alternately, user can disable option 'Remember Job Progress' in order to completely disregard captures when executing jobs.
Added a few verifications when adding a job, warning the user when a fixed startup time is in the past or doesn't result in a positive score at that moment.
Made sure that dawn and dusk values are properly refreshed, before evaluation, and during the execution of the scheduler, in the case local time updates.
Prevented score calculation from continuing when negative. The current implementation is still incorrect, as in fact any intermediate negative score is a no-go.
Check on presence of light/calibration frames is now done inside the score calculation, so that it's not forgotten.
Fixed widget connections in the UI, which were messing up with job data when editing an existing job.
Fixed processing of duplicated track-only jobs. This is an edge case, and is probably not properly fixed yet.
Also fixed save of repeat count not located in the right completion case. Probably a regression?
Fixed regression on scheduler engaging while it is only requested to evaluate jobs.
Fixed regression on capture count, observed with duplicated sequence jobs and duplicated scheduler jobs.
Fixed regression on duration estimation of single sequence jobs, not properly taking scheduler job repeats into account.
Added eye-candy with tooltips local to job rows. There is room for improvement here.
Fixed a few DBUS error messages with wrong arg number.
Added test vectors for the scheduler. There is room for improvement and documentation here:
- '1x1s_Lum' is a sequence with 1 luminance 1-second capture, no prefix.
- '1x1s_RGBLRGB' is a sequence with red, green, blue, luminance, red, green and blue 1-second captures, in that order, prefixed with filter name, duration and timestamp. There is an issue on folders when not prefixing with filter names emphasized by this test vector.
- 'simple_test' targets the first stars of the KStars catalog. Objective of the test is to check how the Scheduler behaves when some targets are not achievable, and how it orders them.
- 'simple_test_no_twilight' is essentially the same test as 'simple_test', except that the restriction on twilight is removed. This allows the scheduler to run immediately.
- 'culmination_no_twilight' verifies the behavior of the Scheduler when all targets are configured to start when culminating.
- 'duplicated_scheduler_job_no_twilight' verifies the behavior of the Scheduler when targets are duplicated. Some of the jobs will complete simultaneously, while others will be processed according to their priority and repeat count.
- 'start_at_finish_at_no_twilight' verifies the behavior of the Scheduler when some jobs have user-specified startup and completion times. At the time of writing, there are several issues emphasized by this test vector
Use the test vectors provided in 'kstars/Tests/scheduler' to verify the behavior of the Scheduler.
Sequence files are to be copied in '/tmp/kstars_tests' for those to work properly.
There is still room for improvement, for sure.
feature__scheduled_asap_jobs (branched from master)
To: TallFurryMan, mutlaqja
Cc: kde-edu, narvaez, apol
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the kde-edu