Tweak to Eugene Crosser's patch to make transactions and acks configurable; disabling them gets basic message delivery working under MorbidQ, and may help with RabbitMQ etc.
I swapped the settings from negative to positive ($config['queue']['stomp_transactions'] = false rather than $config['queue']['stomp_no_transactions'] = true), gave them defaults (both on for best ActiveMQ experience), and added notes to the README about configuring them.
This commit is contained in:
parent
bd1363c17a
commit
faa14b64ab
20
README
20
README
|
@ -942,6 +942,26 @@ stomp_password: password for connecting to the stomp server; defaults
|
||||||
to null.
|
to null.
|
||||||
|
|
||||||
stomp_persistent: keep items across queue server restart, if enabled.
|
stomp_persistent: keep items across queue server restart, if enabled.
|
||||||
|
Under ActiveMQ, the server configuration determines if and how
|
||||||
|
persistent storage is actually saved.
|
||||||
|
|
||||||
|
If using a message queue server other than ActiveMQ, you may
|
||||||
|
need to disable this if it does not support persistence.
|
||||||
|
|
||||||
|
stomp_transactions: use transactions to aid in error detection.
|
||||||
|
A broken transaction will be seen quickly, allowing a message
|
||||||
|
to be redelivered immediately if a daemon crashes.
|
||||||
|
|
||||||
|
If using a message queue server other than ActiveMQ, you may
|
||||||
|
need to disable this if it does not support transactions.
|
||||||
|
|
||||||
|
stomp_acks: send acknowledgements to aid in flow control.
|
||||||
|
An acknowledgement of successful processing tells the server
|
||||||
|
we're ready for more and can help keep things moving smoothly.
|
||||||
|
|
||||||
|
This should *not* be turned off when running with ActiveMQ, but
|
||||||
|
if using another message queue server that does not support
|
||||||
|
acknowledgements you might need to disable this.
|
||||||
|
|
||||||
softlimit: an absolute or relative "soft memory limit"; daemons will
|
softlimit: an absolute or relative "soft memory limit"; daemons will
|
||||||
restart themselves gracefully when they find they've hit
|
restart themselves gracefully when they find they've hit
|
||||||
|
|
|
@ -88,6 +88,8 @@ $default =
|
||||||
'stomp_username' => null,
|
'stomp_username' => null,
|
||||||
'stomp_password' => null,
|
'stomp_password' => null,
|
||||||
'stomp_persistent' => true, // keep items across queue server restart, if persistence is enabled
|
'stomp_persistent' => true, // keep items across queue server restart, if persistence is enabled
|
||||||
|
'stomp_transactions' => true, // use STOMP transactions to aid in detecting failures (supported by ActiveMQ, but not by all)
|
||||||
|
'stomp_acks' => true, // send acknowledgements after successful processing (supported by ActiveMQ, but not by all)
|
||||||
'stomp_manual_failover' => true, // if multiple servers are listed, treat them as separate (enqueue on one randomly, listen on all)
|
'stomp_manual_failover' => true, // if multiple servers are listed, treat them as separate (enqueue on one randomly, listen on all)
|
||||||
'monitor' => null, // URL to monitor ping endpoint (work in progress)
|
'monitor' => null, // URL to monitor ping endpoint (work in progress)
|
||||||
'softlimit' => '90%', // total size or % of memory_limit at which to restart queue threads gracefully
|
'softlimit' => '90%', // total size or % of memory_limit at which to restart queue threads gracefully
|
||||||
|
|
|
@ -60,13 +60,13 @@ class StompQueueManager extends QueueManager
|
||||||
} else {
|
} else {
|
||||||
$this->servers = array($server);
|
$this->servers = array($server);
|
||||||
}
|
}
|
||||||
$this->username = common_config('queue', 'stomp_username');
|
$this->username = common_config('queue', 'stomp_username');
|
||||||
$this->password = common_config('queue', 'stomp_password');
|
$this->password = common_config('queue', 'stomp_password');
|
||||||
$this->base = common_config('queue', 'queue_basename');
|
$this->base = common_config('queue', 'queue_basename');
|
||||||
$this->control = common_config('queue', 'control_channel');
|
$this->control = common_config('queue', 'control_channel');
|
||||||
$this->breakout = common_config('queue', 'breakout');
|
$this->breakout = common_config('queue', 'breakout');
|
||||||
$this->useTransactions = !common_config('queue', 'stomp_no_transactions');
|
$this->useTransactions = common_config('queue', 'stomp_transactions');
|
||||||
$this->useAcks = !common_config('queue', 'stomp_no_acks');
|
$this->useAcks = common_config('queue', 'stomp_acks');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue
Block a user