Concurrent job queue manager with multi-threading support
Project description
k3jobq
k3jobq processes a series of inputs with functions concurrently
k3jobq is a component of pykit3 project: a python3 toolkit set.
k3jobq is a manager to create cuncurrent tasks. It processes a series of inputs with functions concurrently and return once all threads are done::
def add1(args):
return args + 1
def printarg(args):
print(args)
k3jobq.run([0, 1, 2], [add1, printarg])
# > 1
# > 2
# > 3
Install
pip install k3jobq
Synopsis
#!/usr/bin/env python
import k3jobq
if __name__ == "__main__":
def add1(args):
return args + 1
def multi2(args):
return args * 2
def printarg(args):
print(args)
k3jobq.run([0, 1, 2], [add1, printarg])
# > 1
# > 2
# > 3
k3jobq.run((0, 1, 2), [add1, multi2, printarg])
# > 2
# > 4
# > 6
# Specify number of threads for each job:
# Job 'multi2' uses 1 thread.
# This is the same as the above example.
k3jobq.run(list(range(3)), [add1, (multi2, 1), printarg])
# > 2
# > 4
# > 6
# Create 2 threads for job 'multi2':
# As there are 2 thread dealing with multi2, output order will not be kept.
k3jobq.run(list(range(3)), [add1, (multi2, 2), printarg])
# Output could be:
# > 4
# > 2
# > 6
# Multiple threads with order kept:
# keep_order=True to force to keep order even with concurrently running.
k3jobq.run(list(range(3)), [add1, (multi2, 2), printarg],
keep_order=True)
# > 2
# > 4
# > 6
# timeout=0.5 specifies that it runs at most 0.5 second.
k3jobq.run(list(range(3)), [add1, (multi2, 2), printarg],
timeout=0.5)
# Returning *k3jobq.EmptyRst* stops delivering result to next job:
def drop_even_number(i):
if i % 2 == 0:
return k3jobq.EmptyRst
else:
return i
k3jobq.run(list(range(10)), [drop_even_number, printarg])
# > 1
# > 3
# > 5
# > 7
# > 9
Author
Zhang Yanpo (张炎泼) drdr.xp@gmail.com
Copyright and License
The MIT License (MIT)
Copyright (c) 2015 Zhang Yanpo (张炎泼) drdr.xp@gmail.com
Project details
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file k3jobq-0.1.6.tar.gz.
File metadata
- Download URL: k3jobq-0.1.6.tar.gz
- Upload date:
- Size: 12.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7ae0905db44c7c0f809ab76621d9db5a6d0217de3918d4a847dc93c9b5f7dd98
|
|
| MD5 |
16b31d8a5060a1900556dfc538f74268
|
|
| BLAKE2b-256 |
cc6147d1eac2010e4d58fdc6b20dd93852dc907987abf3dc986ff20fbe493c10
|
File details
Details for the file k3jobq-0.1.6-py3-none-any.whl.
File metadata
- Download URL: k3jobq-0.1.6-py3-none-any.whl
- Upload date:
- Size: 10.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d0494175ce1aea061f3de1dd8009cce28360295a4b7b49eae9ea89007c939b2
|
|
| MD5 |
e8d288a47158c2782373b617c6e81026
|
|
| BLAKE2b-256 |
f64f04e33049e4d7372f0d2162a126daee57a6c34bdbc248d1016c1af850f1c7
|