Skip to main content

Queick

A simple inmemory job-queue manager for Python.

capture

Feature

  • Written in Python only standard libraries
  • Job-queue manager without redis
  • Working for low-spec machines
  • Retry
  • Retry on network available
  • Scheduling

Installation

Python version >= 3.6 is required.

pip install queick

Usage

First, launch queick worker.

$ queick

Second, prepare a job file (jobfunc.py) and an application (test.py).

# jobfunc.py
import time
def function(arg):
    time.sleep(1)
    print(arg)

# test.py
from queick import JobQueue
from jobfunc import function
from time import time

q = JobQueue()
q.enqueue(function, args=("hello",))
q.enqueue_at(time() + 5, function, args=("world",)) # Run after 5 seconds

st = SchedulingTime()
st.every(minutes=1).starting_from(time.time() + 10)
q.cron(st, function, args=(1, 2,)) # Run after 10 seconds and every 1 minute

Third, run the application.

$ python test.py

Retry on network available

Jobs inside the failed queue will be dequeued when the network status changes from disconnected to connected.

Some setups are needed to use the retry mode. First, launch queick worker with --ping-host options (details below).

$ queick --ping-host asmsuechan.com # Please prepare your own ping server, do not use this.

Second, pass an option to the method.

q.enqueue(function, args=("hello",), retry_on_network_available=True)

Options

There are some options for queick worker.

name default description
-debug False if set, detailed logs will be shown
--ping-host None hostname for NetworkWatcher to check if the machine has the internet connection
--ping-port 80 port number for NetworkWatcher
--log-filepath None logfile to save all the worker log

An example usage is below:

$ queick -debug --ping-host asmsuechan.com

Testing

Unit test:

$ python -m unittest

Integration test:

$ docker build -t queick-test .
$ docker run --rm -it queick-test:latest

Development

Build queick for development.

$ python setup.py develop

Deployment

Deployed at https://pypi.org/project/queick/.

$ python setup.py sdist
$ twine upload dist/*

Release files for queick 1.2.1

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

Source distribution (sdist)

Source distribution for queick 1.2.1
File Size Uploaded
queick-1.2.1.tar.gz 9.9 kB Details

Release files / queick-1.2.1.tar.gz

Download URL queick-1.2.1.tar.gz
Size 9.9 kB
Tags Source
SHA-256 checksum
How to use checksums
688615594806b32f9afa3c3c0c9b7f6f28ae690e26f59d59f6ae8d90bb4fa641
BLAKE2b-256 checksum
How to use checksums
5538ca78ca77be6379c431e4c7e1e4fe7f7e1492ac5c59b40c0d318c8ca5fc21
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.4

Release history Release notifications | RSS feed

This release

1.2.1 This release

1 release file

1.2.0

1 release file

1.1.1

1 release file

1.1.0

1 release file

1.0.0

1 release file

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