kamma is a very simplified Task File Queue
Project description
kamma is a very simplified task file queue that persists tasks and its needed data. It also has a worker that process all pending tasks.
Motivation
Nowadays local disk access is an undervalued resource for many reasons, however stored data is always available even after power outage. By contrast, network resources or remote third parties are not always ready. Is for this reason I developed the kamma in order to isolate dependent tasks from the miseries of remote services. kamma would try process all pending tasks forever respecting the queue order.
Limitations
Up to (sys.maxint - FileQue.max_head_index) tasks can be queued as maximum.
All task’s arguments should be serializable by json
Not recommended for high performance scenarios.
Install
As simple as:
pip install kamma
Example
import kamma
# python 2 and 3 compatibility issue
try:
input = raw_input
except NameError:
pass
# kamma worker
app = kamma.Worker()
# registering fibonacci callback in kamma app
@app.task_callback(timeout=5, retry_wait=kamma.wait_fixed(1),
retry_stop=kamma.stop_after_attempt(1))
def fibonacci(n, level=0):
result = 1
if n < 0 or n > 100:
raise kamma.AbortTask("n has to be 0 <= n <= 100")
if n > 1:
result = fibonacci(n - 1, level=level + 1) + fibonacci(n - 2, level=level + 1)
if level == 0:
print("*** RESULT: fibonacci of '{}' is '{}' ***".format(n, result))
return result
if __name__ == "__main__":
# start listening for incoming tasks
app.run_async()
print("Enter the value of the fibonacci you want to compute, 0 to exit")
n = 1
while True:
n = int(input(""))
if n == 0:
break
# add new fibonacci task
app.push_task(fibonacci, n=n)
app.stop()
The complete example here: examples/example.py
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file kamma-0.0.10.tar.gz
.
File metadata
- Download URL: kamma-0.0.10.tar.gz
- Upload date:
- Size: 7.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ebb741ee6b83c00e6529446a999960582d0cb0046345ab81da948bd8167e2828 |
|
MD5 | c99d459d6d03bbbb316734303174712a |
|
BLAKE2b-256 | 597bd51cfe53aa86f4c7156238ce57bfd0927645679cabe471b3020a3d9f7486 |
File details
Details for the file kamma-0.0.10-py2.py3-none-any.whl
.
File metadata
- Download URL: kamma-0.0.10-py2.py3-none-any.whl
- Upload date:
- Size: 10.3 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6f59ebd5f65d913f4bc02fe7ba5ff46214e23a76bf1f0a7d1613cd64b618c6e8 |
|
MD5 | c9c432027d0e8854ccda9e7f99cb6a57 |
|
BLAKE2b-256 | b5ab3114ccf83ee6cc4ce634da9962a0a64d11786a10b02607dfe859199e347a |