From 8bc0c2934c0f298a46a611cb4144d41ebf8aaad7 Mon Sep 17 00:00:00 2001 From: Niloy Saha Date: Sun, 14 Jul 2019 11:17:26 +0530 Subject: [PATCH 1/2] Update decorator - updated decorator for parameterized functions --- timeloop/app.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/timeloop/app.py b/timeloop/app.py index d6808d1..c5c5b1b 100644 --- a/timeloop/app.py +++ b/timeloop/app.py @@ -48,8 +48,10 @@ def _stop_jobs(self): def job(self, interval): def decorator(f): - self._add_job(f, interval) - return f + def wrapper(*args, **kwargs): + self._add_job(f, interval, *args, **kwargs) + return f + return wrapper return decorator def stop(self): From a8695e4361b5deff74bf185c5b756166e9347d28 Mon Sep 17 00:00:00 2001 From: Niloy Saha Date: Sun, 14 Jul 2019 11:42:12 +0530 Subject: [PATCH 2/2] Update README - Updated README to include jobs with arguments --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 3175ecf..b792f82 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,17 @@ def sample_job_every_10s(): print "10s job current time : {}".format(time.ctime()) ``` +## Writing jobs with arguments +```python +@tl.job(interval=timedelta(seconds=5)) +def sample_job(idx): + print "Task id: {} | time: {}".format(idx, time.ctime()) + +# example: queue jobs with different ids +for id in range(1, 3): + task(id) +``` + ## Start time loop in separate thread By default timeloop starts in a separate thread.