diff options
author | Alex Grönholm <alex.gronholm@nextday.fi> | 2018-01-03 21:59:53 +0200 |
---|---|---|
committer | Alex Grönholm <alex.gronholm@nextday.fi> | 2018-01-03 22:02:06 +0200 |
commit | c385f948e9f5b4004023bca5cc19a40f3a19af75 (patch) | |
tree | 51e4b19056eca08082514b7a21724913bca8d6a5 | |
parent | b9c2bd6aa328e72860c13e61fc4b5bd2c4d8d51c (diff) | |
download | apscheduler-c385f948e9f5b4004023bca5cc19a40f3a19af75.tar.gz |
Fixed OverflowError on Windows when wait_seconds was too large
Fixes #263.
-rw-r--r-- | apscheduler/schedulers/base.py | 5 | ||||
-rw-r--r-- | apscheduler/util.py | 6 | ||||
-rw-r--r-- | docs/versionhistory.rst | 6 |
3 files changed, 13 insertions, 4 deletions
diff --git a/apscheduler/schedulers/base.py b/apscheduler/schedulers/base.py index d08558f..d777ed9 100644 --- a/apscheduler/schedulers/base.py +++ b/apscheduler/schedulers/base.py @@ -19,7 +19,8 @@ from apscheduler.jobstores.base import ConflictingIdError, JobLookupError, BaseJ from apscheduler.jobstores.memory import MemoryJobStore from apscheduler.job import Job from apscheduler.triggers.base import BaseTrigger -from apscheduler.util import asbool, asint, astimezone, maybe_ref, timedelta_seconds, undefined +from apscheduler.util import ( + asbool, asint, astimezone, maybe_ref, timedelta_seconds, undefined, TIMEOUT_MAX) from apscheduler.events import ( SchedulerEvent, JobEvent, JobSubmissionEvent, EVENT_SCHEDULER_START, EVENT_SCHEDULER_SHUTDOWN, EVENT_JOBSTORE_ADDED, EVENT_JOBSTORE_REMOVED, EVENT_ALL, EVENT_JOB_MODIFIED, EVENT_JOB_REMOVED, @@ -999,7 +1000,7 @@ class BaseScheduler(six.with_metaclass(ABCMeta)): wait_seconds = None self._logger.debug('No jobs; waiting until a job is added') else: - wait_seconds = max(timedelta_seconds(next_wakeup_time - now), 0) + wait_seconds = min(max(timedelta_seconds(next_wakeup_time - now), 0), TIMEOUT_MAX) self._logger.debug('Next wakeup is due at %s (in %f seconds)', next_wakeup_time, wait_seconds) diff --git a/apscheduler/util.py b/apscheduler/util.py index 63ac8ac..d9beb18 100644 --- a/apscheduler/util.py +++ b/apscheduler/util.py @@ -1,10 +1,11 @@ """This module contains several handy functions primarily meant for internal use.""" from __future__ import division + from datetime import date, datetime, time, timedelta, tzinfo from calendar import timegm -import re from functools import partial +import re from pytz import timezone, utc import six @@ -21,7 +22,8 @@ except ImportError: __all__ = ('asint', 'asbool', 'astimezone', 'convert_to_datetime', 'datetime_to_utc_timestamp', 'utc_timestamp_to_datetime', 'timedelta_seconds', 'datetime_ceil', 'get_callable_name', - 'obj_to_ref', 'ref_to_obj', 'maybe_ref', 'repr_escape', 'check_callable_args') + 'obj_to_ref', 'ref_to_obj', 'maybe_ref', 'repr_escape', 'check_callable_args', + 'TIMEOUT_MAX') class _Undefined(object): diff --git a/docs/versionhistory.rst b/docs/versionhistory.rst index 4a2c233..9560f05 100644 --- a/docs/versionhistory.rst +++ b/docs/versionhistory.rst @@ -4,6 +4,12 @@ Version history To find out how to migrate your application from a previous version of APScheduler, see the :doc:`migration section <migration>`. +3.5.1 +----- + +* Fixed ``OverflowError`` on Windows when the wait time is too long + + 3.5.0 ----- |