diff options
author | Bar Harel <bzvi7919@gmail.com> | 2021-01-11 01:21:21 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-11 01:21:21 +0200 |
commit | 341a25d2f870c3e681ce4f0cc85ee275d77f9ddc (patch) | |
tree | dd8b10ede68d36f9d432c168da859c280cd548a0 | |
parent | 2885632e318be6a0fef25f8fddaeedc30d6ff157 (diff) | |
download | apscheduler-341a25d2f870c3e681ce4f0cc85ee275d77f9ddc.tar.gz |
Allow Job to be weak-referenced (#470)
-rw-r--r-- | apscheduler/job.py | 2 | ||||
-rw-r--r-- | tests/test_job.py | 10 |
2 files changed, 11 insertions, 1 deletions
diff --git a/apscheduler/job.py b/apscheduler/job.py index 5c1b75d..7d609fa 100644 --- a/apscheduler/job.py +++ b/apscheduler/job.py @@ -40,7 +40,7 @@ class Job(object): __slots__ = ('_scheduler', '_jobstore_alias', 'id', 'trigger', 'executor', 'func', 'func_ref', 'args', 'kwargs', 'name', 'misfire_grace_time', 'coalesce', 'max_instances', - 'next_run_time') + 'next_run_time', '__weakref__') def __init__(self, scheduler, id=None, **kwargs): super(Job, self).__init__() diff --git a/tests/test_job.py b/tests/test_job.py index 9dc9210..9405554 100644 --- a/tests/test_job.py +++ b/tests/test_job.py @@ -1,4 +1,6 @@ # coding: utf-8 +import gc +import weakref from datetime import datetime, timedelta from functools import partial @@ -64,6 +66,14 @@ def test_remove(job): job._scheduler.remove_job.assert_called_once_with(job.id, None) +def test_weakref(create_job): + job = create_job(func=dummyfunc) + ref = weakref.ref(job) + del job + gc.collect() + assert ref() is None + + def test_pending(job): """ Tests that the "pending" property return True when _jobstore_alias is a string, ``False`` |