Settings

This is the auto-generated full list of pulsar settings available for configuring your pulsar servers or applications. Pulsar can run several Application in one server, via the MultiApp class.

Each application has its own set of configuration parameters with the only exception of the global server settings.

Global Server Settings

These settings are global in the sense that they are used by the arbiter as well as all pulsar workers. They are server configuration parameters.

config

Config name: config

Command line: -c, --config

Default: 'config.py'

The path to a Pulsar config file, where default Settings parameters can be specified.

http_proxy

Config name: http_proxy

Command line: --http-proxy

Default: ''

The HTTP proxy server to use with HttpClient.

http_py_parser

Config name: http_py_parser

Command line: --http-py-parser

Default: False

Set the python parser as default (for testing).

http_keep_alive

Config name: http_keep_alive

Command line: --http-keep-alive

Default: 70

Keep HTTP connections alive for this number of seconds

debug

Config name: debug

Command line: --debug

Default: False

Turn on debugging.

Set the log level to debug, limits the number of worker processes to 1, set asyncio debug flag.

daemon

Config name: daemon

Command line: -D, --daemon

Default: False

Daemonize the pulsar process (posix only).

Detaches the server from the controlling terminal and enters the background.

reload

Config name: reload

Command line: --reload

Default: False

Auto reload modules when changes occurs.

Useful during development.

pid_file

Config name: pid_file

Command line: -p, --pid-file

Default: None

A filename to use for the PID file.

If not set, no PID file will be written.

password

Config name: password

Command line: --password

Default: None

Set a password for the server

user

Config name: user

Command line: -u, --user

Default: None

Switch worker processes to run as this user.

A valid user id (as an integer) or the name of a user that can be retrieved with a call to pwd.getpwnam(value) or None to not change the worker process user.

group

Config name: group

Command line: -g, --group

Default: None

Switch worker process to run as this group.

A valid group id (as an integer) or the name of a user that can be retrieved with a call to pwd.getgrnam(value) or None to not change the worker processes group.

log_level

Config name: log_level

Command line: --log-level

Default: ['info']

The granularity of log outputs.

This setting controls loggers with pulsar namespace and the the root logger (if not already set). Valid level names are:

  • debug
  • info
  • warning
  • error
  • critical
  • none

log_handlers

Config name: log_handlers

Command line: --log-handlers

Default: ['console']

Log handlers for pulsar server

log_config

Config name: log_config

Default: {}

The logging configuration dictionary.

This settings can only be specified on a config file and therefore no command-line parameter is available.

process_name

Config name: process_name

Command line: -n, --process-name

Default: None

A base to use with setproctitle for process naming.

This affects things like ps and top. If you’re going to be running more than one instance of Pulsar you’ll probably want to set a name to tell them apart. This requires that you install the setproctitle module.

It defaults to ‘pulsar’.

default_process_name

Config name: default_process_name

Default: 'pulsar'

Internal setting that is adjusted for each type of application.

coverage

Config name: coverage

Command line: --coverage

Default: False

Collect code coverage from all spawn actors.

data_store

Config name: data_store

Command line: --data-store

Default: ''

Default data store.

Use this setting to specify a datastore used by pulsar applications. By default no datastore is used.

exc_id

Config name: exc_id

Command line: --exc-id

Default: ''

Execution ID.

Use this setting to specify an execution ID. If not provided, a value will be assigned by pulsar.

stream_buffer

Config name: stream_buffer

Command line: --stream-buffer

Default: 16777216

Buffer limit for stream readers

When data in buffer exceeds this size, the framework throws buffer limit errors

event_loop

Config name: event_loop

Command line: --io

Default: 'uvloop if available, epoll on linux, kqueue on mac, select on windows'

Specify the event loop used for I/O event polling.

The default value is the best possible for the system running the application.

redis_py_parser

Config name: redis_py_parser

Command line: --redis-py-parser

Default: False

Use the python redis parser rather the C implementation.

Mainly used for benchmarking purposes.

redis_server

Config name: redis_server

Command line: --redis-server

Default: '127.0.0.1:6379/7'

Default connection string for the redis server

Worker Processes

This group of configuration parameters control the number of actors for a given Monitor, the type of concurrency of the server and other actor-specific parameters.

They are available to all applications and, unlike global settings, each application can specify different values.

workers

Config name: workers

Command line: -w, --workers

Default: 1

The number of workers for handling requests.

If using a multi-process concurrency, a number in the the 2-4 x NUM_CORES range should be good. If you are using threads this number can be higher.

concurrency

Config name: concurrency

Command line: --concurrency

Default: 'process'

The type of concurrency to use.

max_requests

Config name: max_requests

Command line: --max-requests

Default: 0

The maximum number of requests a worker will process before restarting.

Any value greater than zero will limit the number of requests a worker will process before automatically restarting. This is a simple method to help limit the damage of memory leaks.

If this is set to zero (the default) then the automatic worker restarts are disabled.

timeout

Config name: timeout

Command line: -t, --timeout

Default: 30

Workers silent for more than this many seconds are killed and restarted.

thread_workers

Config name: thread_workers

Command line: --thread-workers

Default: 5

Maximum number of threads used by the actor event loop executor.

The executor is a thread pool used by the event loop to perform CPU intensive operations or when it needs to execute blocking calls. It allows the actor main thread to be free to listen to events on file descriptors and process them as quick as possible.

Application Hooks

Application hooks are functions which can be specified in a config file to perform custom tasks in a pulsar server. These tasks can be scheduled when events occurs or at every event loop of the various components of a pulsar application.

All application hooks are functions which accept one positional parameter and one key-valued parameter exc when an exception occurs:

def hook(arg, exc=None):
    ...

Like worker process settings, each application can specify their own.

post_fork

Config name: post_fork

Default: pass_through()

Called just after a worker has been forked

when_ready

Config name: when_ready

Default: pass_through()

Called just before a worker starts running its event loop

when_exit

Config name: when_exit

Default: pass_through()

Called just before an actor is garbage collected.

This is a chance to check the actor status if needed.

connection_made

Config name: connection_made

Default: pass_through()

Called after a new connection is made.

The callable needs to accept one parameter for the connection instance.

connection_lost

Config name: connection_lost

Default: pass_through()

Called after a connection is lost.

The callable needs to accept one parameter for the connection instance.

pre_request

Config name: pre_request

Default: pass_through()

Called just before an application server processes a request.

The callable needs to accept one parameters for the consumer.

post_request

Config name: post_request

Default: pass_through()

Called after an application server processes a request.

The callable needs to accept one parameter for the consumer.

Socket Servers

bind

Application namespace: socket

Config name: bind

Command line: -b, --bind

Default: '127.0.0.1:8060'

The socket to bind.

A string of the form: HOST, HOST:PORT, unix:PATH. An IP is a valid HOST. Specify :PORT to listen for connections from all the network interfaces available on the server.

keep_alive

Application namespace: socket

Config name: keep_alive

Command line: --keep-alive

Default: 15

The number of seconds to keep an idle client connection open.

backlog

Application namespace: socket

Config name: backlog

Command line: --backlog

Default: 2048

The maximum number of queued connections in a socket.

This refers to the number of clients that can be waiting to be served. Exceeding this number results in the client getting an error when attempting to connect. It should only affect servers under significant load. Must be a positive integer. Generally set in the 64-2048 range.

key_file

Application namespace: socket

Config name: key_file

Command line: --key-file

Default: None

SSL key file

cert_file

Application namespace: socket

Config name: cert_file

Command line: --cert-file

Default: None

SSL certificate file

Pulsar data store server

key_value_databases

Application namespace: pulsards

Config name: key_value_databases

Command line: --key-value-databases

Default: 16

Number of databases for the key value store.

key_value_password

Application namespace: pulsards

Config name: key_value_password

Command line: --key-value-password

Default: ''

Optional password for the database.

key_value_save

Application namespace: pulsards

Config name: key_value_save

Default: []

List of pairs controlling data store persistence.

Will save the DB if both the given number of seconds and the given number of write operations against the DB occurred.

The default behaviour will be to save: after 900 sec (15 min) if at least 1 key changed after 300 sec (5 min) if at least 10 keys changed after 60 sec if at least 10000 keys changed

You can disable saving at all by setting an empty list

key_value_filename

Application namespace: pulsards

Config name: key_value_filename

Command line: --key-value-filename

Default: 'pulsards.rdb'

The filename where to dump the DB.

Test

This section covers configuration parameters used by the Asynchronous/Parallel test suite.

verbosity

Application namespace: test

Config name: verbosity

Command line: --verbosity

Default: 1

Test verbosity, 0, 1, 2, 3

test_timeout

Application namespace: test

Config name: test_timeout

Command line: --test-timeout

Default: 20

Tests which take longer than this many seconds are timed-out and failed.

labels

Application namespace: test

Config name: labels

Default: None

Optional test labels to run.

If not provided all tests are run. To see available labels use the -l option.

exclude_labels

Application namespace: test

Config name: exclude_labels

Command line: -e, --exclude-labels

Default: None

Exclude a group o labels from running.

size

Application namespace: test

Config name: size

Command line: --size

Default: 'normal'

Optional test size.

list_labels

Application namespace: test

Config name: list_labels

Command line: -l, --list-labels

Default: False

List all test labels without performing tests.

sequential

Application namespace: test

Config name: sequential

Command line: --sequential

Default: False

Run test functions sequentially.

coveralls

Application namespace: test

Config name: coveralls

Command line: --coveralls

Default: False

Publish coverage to coveralls.

test_plugins

Application namespace: test

Config name: test_plugins

Command line: --test-plugins

Default: ['pulsar.apps.test.plugins.bench:BenchMark', 'pulsar.apps.test.plugins.profile:Profile']

Test plugins.

test_modules

Application namespace: test

Config name: test_modules

Command line: --test-modules

Default: []

An iterable over modules where to look for tests.

Utilities

pulsar.utils.config.pass_through(arg)[source]

A dummy function accepting one parameter only.

It does nothing and it is used as default by Application Hooks.