forked from GNUsocial/gnu-social
reformat queuehandler.php
This commit is contained in:
parent
6be15dfcac
commit
bd120bc315
|
@ -112,38 +112,38 @@ class QueueHandler extends Daemon
|
||||||
}
|
}
|
||||||
|
|
||||||
function stomp_dispatch() {
|
function stomp_dispatch() {
|
||||||
require("Stomp.php");
|
require("Stomp.php");
|
||||||
$con = new Stomp(common_config('queue','stomp_server'));
|
$con = new Stomp(common_config('queue','stomp_server'));
|
||||||
if (!$con->connect()) {
|
if (!$con->connect()) {
|
||||||
$this->log(LOG_ERR, 'Failed to connect to queue server');
|
$this->log(LOG_ERR, 'Failed to connect to queue server');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$queue_basename = common_config('queue','queue_basename');
|
$queue_basename = common_config('queue','queue_basename');
|
||||||
// subscribe to the relevant queue (format: basename-transport)
|
// subscribe to the relevant queue (format: basename-transport)
|
||||||
$con->subscribe('/queue/'.$queue_basename.'-'.$this->transport());
|
$con->subscribe('/queue/'.$queue_basename.'-'.$this->transport());
|
||||||
|
|
||||||
do {
|
do {
|
||||||
$frame = $con->readFrame();
|
$frame = $con->readFrame();
|
||||||
if ($frame) {
|
if ($frame) {
|
||||||
$this->log(LOG_INFO, 'Got item enqueued '.common_exact_date($frame->headers['created']));
|
$this->log(LOG_INFO, 'Got item enqueued '.common_exact_date($frame->headers['created']));
|
||||||
|
|
||||||
// XXX: Now the queue handler receives only the ID of the
|
// XXX: Now the queue handler receives only the ID of the
|
||||||
// notice, and it has to get it from the DB
|
// notice, and it has to get it from the DB
|
||||||
// A massive improvement would be avoid DB query by transmitting
|
// A massive improvement would be avoid DB query by transmitting
|
||||||
// all the notice details via queue server...
|
// all the notice details via queue server...
|
||||||
$notice = Notice::staticGet($frame->body);
|
$notice = Notice::staticGet($frame->body);
|
||||||
|
|
||||||
if ($notice) {
|
if ($notice) {
|
||||||
$this->log(LOG_INFO, 'broadcasting notice ID = ' . $notice->id);
|
$this->log(LOG_INFO, 'broadcasting notice ID = ' . $notice->id);
|
||||||
$result = $this->handle_notice($notice);
|
$result = $this->handle_notice($notice);
|
||||||
if ($result) {
|
if ($result) {
|
||||||
// if the msg has been handled positively, ack it
|
// if the msg has been handled positively, ack it
|
||||||
// and the queue server will remove it from the queue
|
// and the queue server will remove it from the queue
|
||||||
$con->ack($frame);
|
$con->ack($frame);
|
||||||
$this->log(LOG_INFO, 'finished broadcasting notice ID = ' . $notice->id);
|
$this->log(LOG_INFO, 'finished broadcasting notice ID = ' . $notice->id);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// no ack
|
// no ack
|
||||||
$this->log(LOG_WARNING, 'Failed broadcast for notice ID = ' . $notice->id);
|
$this->log(LOG_WARNING, 'Failed broadcast for notice ID = ' . $notice->id);
|
||||||
}
|
}
|
||||||
$notice->free();
|
$notice->free();
|
||||||
|
@ -152,25 +152,24 @@ class QueueHandler extends Daemon
|
||||||
} else {
|
} else {
|
||||||
$this->log(LOG_WARNING, 'queue item for notice that does not exist');
|
$this->log(LOG_WARNING, 'queue item for notice that does not exist');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} while (true);
|
} while (true);
|
||||||
|
|
||||||
$con->disconnect();
|
$con->disconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function run()
|
function run()
|
||||||
{
|
{
|
||||||
if (!$this->start()) {
|
if (!$this->start()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$this->log(LOG_INFO, 'checking for queued notices');
|
$this->log(LOG_INFO, 'checking for queued notices');
|
||||||
if (common_config('queue','subsystem') == 'stomp') {
|
if (common_config('queue','subsystem') == 'stomp') {
|
||||||
$this->stomp_dispatch();
|
$this->stomp_dispatch();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$this->db_dispatch();
|
$this->db_dispatch();
|
||||||
}
|
}
|
||||||
if (!$this->finish()) {
|
if (!$this->finish()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue