Skip to main content

A worker dispatcher with multiprocessing and multithreading.

Project description

Module burncpu is a worker dispatcher with multiprocessing and multithreading.

Features

  • All CPU cores can be used.

  • Workers can be stopped gracefully by system signals.

  • Pure python code.

Quickstart

Use the following command to run the sample module.

python3 -m burncpu.sample

Then monitor CPU status, some changes take place at these time.

Time

Events

0s

All CPU cores are IDLE.

10s

Workers begin to call one_second_task many times.

60s

Workers begin to terminate.

Pressing Ctrl+C or sending system signal can also terminate the sample.

Finally copy and modify the source code to make your own.

Reference

To import

from burncpu.dispatcher import WorkerDispatcher

class WorkerDispatcher

WorkerDispatcher.__init__(worker_count=0, use_core=0, time_limit=0)

Create a dispatcher instace.

worker_count

How many threads would be created, 0 means to create (use_core * 2) threads.

use_core

How many cores would be use, 0 means all cores.

time_limit

Stop workers after given seconds. Running functions still run at that moment. Queued functions would be cancled.

WorkerDispatcher.dispatch(func, args)

Dispatch a function to one of workers randomly.

func

Function to call.

args

Argument list of this function.

WorkerDispatcher.sleep(seconds)

Sleep dispatcher for given seconds.

seconds

Seconds to sleep. Dispatcher would not sleep given seconds actually. It sleep many times during given seconds, so that system signal (e.g. Ctrl+C) can be handled.

WorkerDispatcher.join()

Wait until all workers stopped.

WorkerDispatcher.is_alive()

Check if the dispatcher is alive.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

burncpu-0.0.16-py3-none-any.whl (3.5 kB view details)

Uploaded Python 3

File details

Details for the file burncpu-0.0.16-py3-none-any.whl.

File metadata

File hashes

Hashes for burncpu-0.0.16-py3-none-any.whl
Algorithm Hash digest
SHA256 cf38333a1fd4668cafbeca017ca3e472f01053446e1a1607294d23b9642fc2b9
MD5 c66fe30a6cdc688e604e8a2ce69a8df7
BLAKE2b-256 3cd6c49501e900c1b39c39fd5b56f9afbce685a9c83aae05b36161ab18140515

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