Skip to main content
# Timeloop
Timeloop is a service that can be used to run periodic tasks after a certain interval.

![timeloop](http://66.42.57.109/timeloop.jpg)

Each job runs on a separate thread and when the service is shut down, it waits till all tasks currently being executed are completed.

Inspired by this blog [`here`](https://www.g-loaded.eu/2016/11/24/how-to-terminate-running-python-threads-using-signals/)

## Installation
```sh
pip install timeloop
```

## Writing jobs
```python
import time

from timeloop import Timeloop
from datetime import timedelta

tl = Timeloop()

@tl.job(interval=timedelta(seconds=2))
def sample_job_every_2s():
print "2s job current time : {}".format(time.ctime())

@tl.job(interval=timedelta(seconds=5))
def sample_job_every_5s():
print "5s job current time : {}".format(time.ctime())


@tl.job(interval=timedelta(seconds=10))
def sample_job_every_10s():
print "10s job current time : {}".format(time.ctime())
```

## Start time loop in separate thread
By default timeloop starts in a separate thread.

Please do not forget to call ```tl.stop``` before exiting the program, Or else the jobs wont shut down gracefully.

```python
tl.start()

while True:
try:
time.sleep(1)
except KeyboardInterrupt:
tl.stop()
break
```

## Start time loop in main thread
Doing this will automatically shut down the jobs gracefully when the program is killed, so no need to call ```tl.stop```
```python
tl.start(block=True)
```

## Author
* **Sankalp Jonna**

Email me with any queries: [sankalpjonna@gmail.com](sankalpjonna@gmail.com).


Metadata

Release files for timeloop 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for timeloop 1.0.2
File Size Uploaded
timeloop-1.0.2.tar.gz 2.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for timeloop 1.0.2
File Interpreter ABI Platform
timeloop-1.0.2-py2-none-any.whl Python 2 none any Details

Total release size: 8.1 kB

Release files / timeloop-1.0.2.tar.gz

Download URL timeloop-1.0.2.tar.gz
Size 2.9 kB
Tags Source
SHA-256 checksum
How to use checksums
4e716c67fe6bcadcee7ddb91e2520792426818a70f27e630cfbbbd9becc48a13
BLAKE2b-256 checksum
How to use checksums
6a953e39ee32f15a8e9dea46bb52300611a5351964eeaa393bafb0d738e90ce0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/2.7.12

Release files / timeloop-1.0.2-py2-none-any.whl

Download URL timeloop-1.0.2-py2-none-any.whl
Size 5.2 kB
Tags Python 2
SHA-256 checksum
How to use checksums
70cb69eeef39968ea0e6dd68a3a3a51257d5f4aa27b177ab1b19ca86ff525946
BLAKE2b-256 checksum
How to use checksums
ade7371d64fc6c6fce53c490fc38816a77fe8c75ff608edc0807170ff3c62bf2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/2.7.12

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.1

2 release files

1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page