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.

Filename, size & hash SHA256 hash help File type Python version Upload date
burncpu-0.0.16-py3-none-any.whl (3.5 kB) Copy SHA256 hash SHA256 Wheel py3

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page