ImPlugin classes generally require background daemons in CLI
If someone designs an ImPlugin which _doesn't_ require the queues to be handled in background daemons then they can set the requires_cli property to false in their class.
This commit is contained in:
parent
0bd16b521c
commit
cbabab273f
|
@ -49,6 +49,8 @@ abstract class ImPlugin extends Plugin
|
||||||
//list of screennames that should get all public notices
|
//list of screennames that should get all public notices
|
||||||
public $public = array();
|
public $public = array();
|
||||||
|
|
||||||
|
protected $requires_cli = true;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* normalize a screenname for comparison
|
* normalize a screenname for comparison
|
||||||
*
|
*
|
||||||
|
@ -530,9 +532,14 @@ abstract class ImPlugin extends Plugin
|
||||||
*/
|
*/
|
||||||
function onEndInitializeQueueManager($manager)
|
function onEndInitializeQueueManager($manager)
|
||||||
{
|
{
|
||||||
|
// If we don't require CLI mode, or if we do and GNUSOCIAL_CLI _is_ set, then connect the transports
|
||||||
|
// This check is made mostly because some IM plugins can't deliver to transports unless they
|
||||||
|
// have continously running daemons (such as XMPP) and we can't have that over HTTP requests.
|
||||||
|
if (!$this->requires_cli || defined('GNUSOCIAL_CLI')) {
|
||||||
$manager->connect($this->transport . '-in', new ImReceiverQueueHandler($this), 'im');
|
$manager->connect($this->transport . '-in', new ImReceiverQueueHandler($this), 'im');
|
||||||
$manager->connect($this->transport, new ImQueueHandler($this));
|
$manager->connect($this->transport, new ImQueueHandler($this));
|
||||||
$manager->connect($this->transport . '-out', new ImSenderQueueHandler($this), 'im');
|
$manager->connect($this->transport . '-out', new ImSenderQueueHandler($this), 'im');
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,8 @@ if (isset($_SERVER) && array_key_exists('REQUEST_METHOD', $_SERVER)) {
|
||||||
define('GNUSOCIAL', true);
|
define('GNUSOCIAL', true);
|
||||||
define('STATUSNET', true); //compatibility
|
define('STATUSNET', true); //compatibility
|
||||||
|
|
||||||
|
define('GNUSOCIAL_CLI', true); // to know we're in a CLI environment
|
||||||
|
|
||||||
// Set various flags so we don't time out on long-running processes
|
// Set various flags so we don't time out on long-running processes
|
||||||
|
|
||||||
ini_set("max_execution_time", "0");
|
ini_set("max_execution_time", "0");
|
||||||
|
|
Loading…
Reference in New Issue
Block a user