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