Skip to main content

Donald is here

Project description

Donald – A simple task engine for Asyncio.

The main goal for Donald to run async/sync code without blocking main loop.

Donald supports synchronous and asynchronous paradigms. The package is running coroutines and functions in multi loops. Donald could run periodic tasks and listen AMQP queues.

Tests Status PYPI Version

Requirements

  • python 3.8+

Installation

Donald should be installed using pip:

pip install donald

Usage

From shell:

$ donald --help

From asynchronous python code:

# Init Donald
donald = Donald(
    # Params (default values)
    # -----------------------

    # Run tasks imediatelly in the same process/thread
    fake_mode=False,

    # Number of workers
    num_workers=multiprocessing.cpu_count() - 1,

    # Maximum concurent tasks per worker
    max_tasks_per_worker=100,

    # Ensure that the Donald starts only once (set to filename to lock)
    filelock=None,

    # logging level
    loglevel='INFO',

    # AMQP params
    queue={
        'exchange': 'donald',
        'queue': 'donald',
    }
)

# Start the donald
await donald.start()

# ...

result = await donald.submit(corofunction or function, *args, **kwargs)
await donald.schedule(crontab_string | seconds_float | datetime_timedelta, corofunction or function, *args, **kwargs)

# ...

# Stop the donald
await donald.stop()

Listen AMQP

AMQP:

donald = Donald()

await donald.start()

# Send task to queue
await donald.queue.start(False)
await donald.queue.submit(<coro or func>, *args, **kwargs)

# Listen tasks
await donald.queue.listen()
await donald.listen(<AMQP URL>)

Bug tracker

If you have any suggestions, bug reports or annoyances please report them to the issue tracker at https://github.com/klen/donald/issues

Contributing

Development of starter happens at github: https://github.com/klen/donald

Contributors

  • klen (Kirill Klenov)

License

Licensed under a BSD license.

Project details


Release history Release notifications | RSS feed

This version

0.3.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Donald-0.3.0.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

Donald-0.3.0-py2.py3-none-any.whl (9.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file Donald-0.3.0.tar.gz.

File metadata

  • Download URL: Donald-0.3.0.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.9.0

File hashes

Hashes for Donald-0.3.0.tar.gz
Algorithm Hash digest
SHA256 b33ab2cb276c9d77d7cc6f0e641599d6b966c63ff4cd70346dcc23dc42ad40a3
MD5 38101b4a633ed029c1a514bc005e5168
BLAKE2b-256 e715e8b76ece893c5d7ab63641ffa300a98d24f597b8f3df949095ea2962dc53

See more details on using hashes here.

File details

Details for the file Donald-0.3.0-py2.py3-none-any.whl.

File metadata

  • Download URL: Donald-0.3.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.9.0

File hashes

Hashes for Donald-0.3.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c48a2ffbdfed64dbd0f4400f39abdca3a2f75166d8ffaf36674b5d14c59f1747
MD5 36469a8e5e9db9d34de61f4b94ed5472
BLAKE2b-256 65564891e63f94b3a3bbb235ba38b84fd0c6d29b6cc6f96a2ba7d07c1bfc960a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page