Check-in [92f88e7a9b]
Overview
| Comment: | Trivial update for Python 3. | 
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive | 
| Timelines: | family | ancestors | descendants | both | trunk | 
| Files: | files | file ages | folders | 
| SHA1: | 
92f88e7a9bba26076e7917f8cfc93fd0 | 
| User & Date: | mario on 2015-03-29 15:07:02 | 
| Other Links: | manifest | tags | 
Context
| 
   2015-03-29 
 | ||
| 16:40 | Use absolute path for conf.share, and ensure it doesn't get overwritten from last value in settings.json. check-in: c03cbe2403 user: mario tags: trunk | |
| 15:07 | Trivial update for Python 3. check-in: 92f88e7a9b user: mario tags: trunk | |
| 14:51 | Mirror updates to Mallard help pages. check-in: 73b73dd933 user: mario tags: trunk | |
Changes
Modified bundle/kronos.py from [24a87e43ef] to [6b151802f7].
| ︙ | ︙ | |||
39 40 41 42 43 44 45  | have been made to make it work on Python 2.6 (sched module changes). The version in Turbogears is based on the original stand-alone Kronos. This is open-source software, released under the MIT Software License: http://www.opensource.org/licenses/mit-license.php """  | |  | 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53  | 
have been made to make it work on Python 2.6 (sched module changes).
The version in Turbogears is based on the original stand-alone Kronos.
This is open-source software, released under the MIT Software License:
http://www.opensource.org/licenses/mit-license.php
"""
__version__="2.1"
__all__ = [
    "DayTaskRescheduler",
    "ForkedIntervalTask",
    "ForkedMonthdayTask",
    "ForkedScheduler",
    "ForkedSingleTask",
 | 
| ︙ | ︙ | |||
271 272 273 274 275 276 277  | 
    def _run(self):
        # Low-level run method to do the actual scheduling loop.
        while self.running:
            try:
                self.sched.run()
            except Exception as x:
 | | | | |  | 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288  | 
    def _run(self):
        # Low-level run method to do the actual scheduling loop.
        while self.running:
            try:
                self.sched.run()
            except Exception as x:
                print("ERROR DURING SCHEDULER EXECUTION",x, file=sys.stderr)
                print("".join(
                    traceback.format_exception(*sys.exc_info())), file=sys.stderr)
                print("-" * 20, file=sys.stderr)
            # queue is empty; sleep a short while before checking again
            if self.running:
                time.sleep(5)
class Task:
    """Abstract base class of all scheduler tasks"""
 | 
| ︙ | ︙ | |||
309 310 311 312 313 314 315  | 
    def execute(self):
        """Execute the actual task."""
        self.action(*self.args, **self.kw)
    def handle_exception(self, exc):
        """Handle any exception that occured during task execution."""
 | | | |  | 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325  | 
    def execute(self):
        """Execute the actual task."""
        self.action(*self.args, **self.kw)
    def handle_exception(self, exc):
        """Handle any exception that occured during task execution."""
        print("ERROR DURING TASK EXECUTION", exc, file=sys.stderr)
        print("".join(traceback.format_exception(*sys.exc_info())), file=sys.stderr)
        print("-" * 20, file=sys.stderr)
class SingleTask(Task):
    """A task that only runs once."""
    def reschedule(self, scheduler):
        pass
 | 
| ︙ | ︙ | |||
557 558 559 560 561 562 563  | 
        """Monthday Task that executes in its own process."""
        pass
if __name__=="__main__":
    def testaction(arg):
 | | | | | |  | 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578  | 
        """Monthday Task that executes in its own process."""
        pass
if __name__=="__main__":
    def testaction(arg):
        print(">>>TASK",arg,"sleeping 3 seconds")
        time.sleep(3)
        print("<<<END_TASK",arg)
    s=ThreadedScheduler()
    s.add_interval_task( testaction, "test action 1", 0, 4, method.threaded, ["task 1"], None )
    s.start()
    
    print("Scheduler started, waiting 15 sec....")
    time.sleep(15)
    
    print("STOP SCHEDULER")
    s.stop()
    
    print("EXITING")
 |