Without only the worker queue we don't need the deliverq anymore.
This commit is contained in:
parent
0d32f0be46
commit
4812f4c0f9
14
database.sql
14
database.sql
|
@ -1,5 +1,5 @@
|
||||||
-- ------------------------------------------
|
-- ------------------------------------------
|
||||||
-- Friendica 3.5.1-rc (Asparagus)
|
-- Friendica 3.5.2-dev (Asparagus)
|
||||||
-- DB_UPDATE_VERSION 1215
|
-- DB_UPDATE_VERSION 1215
|
||||||
-- ------------------------------------------
|
-- ------------------------------------------
|
||||||
|
|
||||||
|
@ -204,18 +204,6 @@ CREATE TABLE IF NOT EXISTS `conv` (
|
||||||
INDEX `uid` (`uid`)
|
INDEX `uid` (`uid`)
|
||||||
) DEFAULT CHARSET=utf8mb4;
|
) DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
--
|
|
||||||
-- TABLE deliverq
|
|
||||||
--
|
|
||||||
CREATE TABLE IF NOT EXISTS `deliverq` (
|
|
||||||
`id` int(10) unsigned NOT NULL auto_increment,
|
|
||||||
`cmd` varbinary(32) NOT NULL DEFAULT '',
|
|
||||||
`item` int(11) NOT NULL DEFAULT 0,
|
|
||||||
`contact` int(11) NOT NULL DEFAULT 0,
|
|
||||||
PRIMARY KEY(`id`),
|
|
||||||
UNIQUE INDEX `cmd_item_contact` (`cmd`,`item`,`contact`)
|
|
||||||
) DEFAULT CHARSET=utf8mb4;
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- TABLE event
|
-- TABLE event
|
||||||
--
|
--
|
||||||
|
|
|
@ -712,18 +712,6 @@ function db_definition($charset) {
|
||||||
"uid" => array("uid"),
|
"uid" => array("uid"),
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
$database["deliverq"] = array(
|
|
||||||
"fields" => array(
|
|
||||||
"id" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
|
|
||||||
"cmd" => array("type" => "varbinary(32)", "not null" => "1", "default" => ""),
|
|
||||||
"item" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
|
|
||||||
"contact" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
|
|
||||||
),
|
|
||||||
"indexes" => array(
|
|
||||||
"PRIMARY" => array("id"),
|
|
||||||
"cmd_item_contact" => array("UNIQUE", "cmd", "item", "contact"),
|
|
||||||
)
|
|
||||||
);
|
|
||||||
$database["event"] = array(
|
$database["event"] = array(
|
||||||
"fields" => array(
|
"fields" => array(
|
||||||
"id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
|
"id" => array("type" => "int(11)", "not null" => "1", "extra" => "auto_increment", "primary" => "1"),
|
||||||
|
|
|
@ -30,30 +30,6 @@ function delivery_run(&$argv, &$argc){
|
||||||
|
|
||||||
$contact_id = intval($argv[$x]);
|
$contact_id = intval($argv[$x]);
|
||||||
|
|
||||||
/// @todo When switching completely to the worker we won't need this anymore
|
|
||||||
// Some other process may have delivered this item already.
|
|
||||||
|
|
||||||
$r = q("SELECT * FROM `deliverq` WHERE `cmd` = '%s' AND `item` = %d AND `contact` = %d LIMIT 1",
|
|
||||||
dbesc($cmd),
|
|
||||||
dbesc($item_id),
|
|
||||||
dbesc($contact_id)
|
|
||||||
);
|
|
||||||
if (!dbm::is_result($r)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($a->maxload_reached()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// It's ours to deliver. Remove it from the queue.
|
|
||||||
|
|
||||||
q("DELETE FROM `deliverq` WHERE `cmd` = '%s' AND `item` = %d AND `contact` = %d",
|
|
||||||
dbesc($cmd),
|
|
||||||
dbesc($item_id),
|
|
||||||
dbesc($contact_id)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!$item_id || !$contact_id) {
|
if (!$item_id || !$contact_id) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -471,7 +471,8 @@ function notifier_run(&$argv, &$argc){
|
||||||
if ($relocate) {
|
if ($relocate) {
|
||||||
$r = $recipients_relocate;
|
$r = $recipients_relocate;
|
||||||
} else {
|
} else {
|
||||||
$r = q("SELECT * FROM `contact` WHERE `id` IN (%s) AND NOT `blocked` AND NOT `pending` AND NOT `archive`".$sql_extra,
|
$r = q("SELECT `id`, `url`, `network`, `self` FROM `contact`
|
||||||
|
WHERE `id` IN (%s) AND NOT `blocked` AND NOT `pending` AND NOT `archive`".$sql_extra,
|
||||||
dbesc($recip_str)
|
dbesc($recip_str)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -480,28 +481,12 @@ function notifier_run(&$argv, &$argc){
|
||||||
|
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
foreach ($r as $contact) {
|
foreach ($r as $contact) {
|
||||||
if (!$contact['self']) {
|
|
||||||
if (($contact['network'] === NETWORK_DIASPORA) && ($public_message)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
q("INSERT INTO `deliverq` (`cmd`,`item`,`contact`) VALUES ('%s', %d, %d)",
|
|
||||||
dbesc($cmd),
|
|
||||||
intval($item_id),
|
|
||||||
intval($contact['id'])
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for ($x = 0; $x < count($r); $x ++) {
|
|
||||||
$contact = $r[$x];
|
|
||||||
|
|
||||||
if ($contact['self']) {
|
if ($contact['self']) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
logger("Deliver ".$target_item["guid"]." to ".$contact['url']." via network ".$contact['network'], LOGGER_DEBUG);
|
logger("Deliver ".$target_item["guid"]." to ".$contact['url']." via network ".$contact['network'], LOGGER_DEBUG);
|
||||||
|
|
||||||
proc_run(PRIORITY_HIGH,'include/delivery.php', $cmd, $item_id, $contact['id']);
|
proc_run(PRIORITY_HIGH,'include/delivery.php', $cmd, $item_id, $contact['id']);
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -553,18 +538,6 @@ function notifier_run(&$argv, &$argc){
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
logger('pubdeliver '.$target_item["guid"].': '.print_r($r,true), LOGGER_DEBUG);
|
logger('pubdeliver '.$target_item["guid"].': '.print_r($r,true), LOGGER_DEBUG);
|
||||||
|
|
||||||
// throw everything into the queue in case we get killed
|
|
||||||
|
|
||||||
foreach ($r as $rr) {
|
|
||||||
if ((! $mail) && (! $fsuggest) && (! $followup)) {
|
|
||||||
q("INSERT INTO `deliverq` (`cmd`,`item`,`contact`) VALUES ('%s', %d, %d)
|
|
||||||
ON DUPLICATE KEY UPDATE `cmd` = '%s', `item` = %d, `contact` = %d",
|
|
||||||
dbesc($cmd), intval($item_id), intval($rr['id']),
|
|
||||||
dbesc($cmd), intval($item_id), intval($rr['id'])
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($r as $rr) {
|
foreach ($r as $rr) {
|
||||||
|
|
||||||
// except for Diaspora batch jobs
|
// except for Diaspora batch jobs
|
||||||
|
|
|
@ -29,14 +29,6 @@ function queue_run(&$argv, &$argc){
|
||||||
// Handling the pubsubhubbub requests
|
// Handling the pubsubhubbub requests
|
||||||
proc_run(PRIORITY_HIGH,'include/pubsubpublish.php');
|
proc_run(PRIORITY_HIGH,'include/pubsubpublish.php');
|
||||||
|
|
||||||
$r = q("select * from deliverq where 1");
|
|
||||||
if ($r) {
|
|
||||||
foreach ($r as $rr) {
|
|
||||||
logger('queue: deliverq');
|
|
||||||
proc_run(PRIORITY_HIGH,'include/delivery.php', $rr['cmd'], $rr['item'], $rr['contact']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$r = q("SELECT `queue`.*, `contact`.`name`, `contact`.`uid` FROM `queue`
|
$r = q("SELECT `queue`.*, `contact`.`name`, `contact`.`uid` FROM `queue`
|
||||||
INNER JOIN `contact` ON `queue`.`cid` = `contact`.`id`
|
INNER JOIN `contact` ON `queue`.`cid` = `contact`.`id`
|
||||||
WHERE `queue`.`created` < UTC_TIMESTAMP() - INTERVAL 3 DAY");
|
WHERE `queue`.`created` < UTC_TIMESTAMP() - INTERVAL 3 DAY");
|
||||||
|
|
Loading…
Reference in a new issue